X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=nfs3%2Fnfs3.c;h=c668542fb3aa1435f2482af698b45d61bf1d9d5b;hb=8f8e45baddcf19780e4189539771299bb0ace10b;hp=2aa429955f12b327d366ad2fcb4a347ae6c648be;hpb=d5e2f1643a99e57607e86173d832dbfa4f8b51c2;p=bluesky.git diff --git a/nfs3/nfs3.c b/nfs3/nfs3.c index 2aa4299..c668542 100644 --- a/nfs3/nfs3.c +++ b/nfs3/nfs3.c @@ -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;