}
ObtainWriteLock(&vcp->lock, 530);
- vcp->m.Date = osi_Time(); /* set modification time */
afs_FakeClose(vcp, credp);
- if (code >= 0)
- code2 = afs_DoPartialWrite(vcp, &treq);
- if (code2 && code >= 0)
- code = (ssize_t) - code2;
ReleaseWriteLock(&vcp->lock);
afs_Trace4(afs_iclSetp, CM_TRACE_WRITEOP, ICL_TYPE_POINTER, vcp,
ip->i_size = vcp->m.Length;
ip->i_blocks = ((vcp->m.Length + 1023) >> 10) << 1;
+ if (!code) {
+ struct vrequest treq;
+
+ ObtainWriteLock(&vcp->lock, 533);
+ vcp->m.Date = osi_Time(); /* set modification time */
+ if (!afs_InitReq(&treq, credp))
+ code = afs_DoPartialWrite(vcp, &treq);
+ ReleaseWriteLock(&vcp->lock);
+ }
+ if (!code) {
+ struct vrequest treq;
+
+ ObtainWriteLock(&vcp->lock, 533);
+ vcp->m.Date = osi_Time(); /* set modification time */
+ if (!afs_InitReq(&treq, credp))
+ code = afs_DoPartialWrite(vcp, &treq);
+ ReleaseWriteLock(&vcp->lock);
+ }
+
code = code ? -code : count - tuio.uio_resid;
afs_Trace4(afs_iclSetp, CM_TRACE_UPDATEPAGE, ICL_TYPE_POINTER, vcp,
ICL_TYPE_POINTER, pp, ICL_TYPE_INT32, page_count(pp),