X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=nfs3%2Fnfs3.c;h=9fccd00f2fe31b55121111555b1cf9cc784800a3;hb=cb5c460ba6a31c27ac0d6803c33e9e6c5a140acd;hp=70273ffd322e50de14e93856bf822785db09fed0;hpb=53162a864578bcfbc2c35cbc59b9395d7108a2fe;p=bluesky.git diff --git a/nfs3/nfs3.c b/nfs3/nfs3.c index 70273ff..9fccd00 100644 --- a/nfs3/nfs3.c +++ b/nfs3/nfs3.c @@ -870,7 +870,24 @@ nfsproc3_fsstat_3_svc(nfs_fh3 *argp, struct svc_req *rqstp) { static fsstat3res result; - result.status = NFS3ERR_NOTSUPP; + BlueSkyInode *inode = lookup_fh(argp); + if (inode == NULL) { + result.status = NFS3ERR_STALE; + result.fsstat3res_u.resfail.present = FALSE; + return &result; + } + + result.status = NFS3_OK; + result.fsstat3res_u.resok.obj_attributes.present = TRUE; + encode_fattr3(&result.fsstat3res_u.resok.obj_attributes.post_op_attr_u.attributes, inode); + + result.fsstat3res_u.resok.tbytes = (1 << 30); + result.fsstat3res_u.resok.fbytes = (1 << 30); + result.fsstat3res_u.resok.abytes = (1 << 30); + result.fsstat3res_u.resok.tfiles = 0; + result.fsstat3res_u.resok.ffiles = 0; + result.fsstat3res_u.resok.afiles = 0; + result.fsstat3res_u.resok.invarsec = 0; return &result; }