Include post-opeation file attributes for the NFS write operation.
[bluesky.git] / nfs3 / nfs3.c
index 2aa4299..c668542 100644 (file)
@@ -119,6 +119,14 @@ void encode_fattr3(struct fattr3 *result, BlueSkyInode *inode)
     result->mtime.nseconds = (inode->mtime % 1000000) * 1000;
     result->ctime.seconds = inode->ctime / 1000000;
     result->ctime.nseconds = (inode->ctime % 1000000) * 1000;
+
+    switch (inode->type) {
+    case BLUESKY_SYMLINK:
+        result->size = strlen(inode->symlink_contents);
+        break;
+    default:
+        break;
+    }
 }
 
 void encode_pre_wcc(struct wcc_data *wcc, BlueSkyInode *inode)
@@ -349,6 +357,7 @@ nfsproc3_write_3_svc(write3args *argp, struct svc_req *rqstp)
                            argp->data.data_val, argp->count);
     }
 
+    wcc.after.present = TRUE;
     encode_fattr3(&wcc.after.post_op_attr_u.attributes, inode);
     result.write3res_u.resok.file_wcc = wcc;
     result.write3res_u.resok.count = argp->count;