[NFS] [PATCH] knfsd: set the response bitmask for NFS4_CREATE_EXCLUSIVE (repost)
Jeff Layton
jlayton at redhat.com
Wed Jun 27 17:39:57 EDT 2007
On Thu, 28 Jun 2007 07:26:45 +1000
Neil Brown <neilb at suse.de> wrote:
> On Wednesday June 27, jlayton at redhat.com wrote:
> > Haven't seen any comments on this patch so far. Neil, any thoughts?
>
> I don't remember seeing it before, but that doesn't say much...
> My thoughts:
> 1/ I would like it to come to me through Bruce.
Ahh, I'll make a mental note to badger Bruce in the future ;-)
> 2/ The comment is good, but seems to be asking for a matching comment
> in nfsd_create_v3.
>
Good point, let me add a comment there. I'll respin the patch and
resend.
> NeilBrown
>
> >
> > --------------[snip]--------------
> >
> > RFC 3530 says:
> >
> > If the server uses an attribute to store the exclusive
> > create verifier, it will signify which attribute by setting the
> > appropriate bit in the attribute mask that is returned in the
> > results.
> >
> > Linux uses the atime and mtime to store the verifier, but sends a zeroed out
> > bitmask back to the client. This patch makes sure that we set the correct
> > bits in the bitmask in this situation.
> >
> > Signed-off-by: Jeff Layton <jlayton at redhat.com>
> >
> > diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
> > index 8522729..da20674 100644
> > --- a/fs/nfsd/nfs4proc.c
> > +++ b/fs/nfsd/nfs4proc.c
> > @@ -99,7 +99,15 @@ do_open_lookup(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_o
> > status = nfsd_create_v3(rqstp, current_fh, open->op_fname.data,
> > open->op_fname.len, &open->op_iattr,
> > &resfh, open->op_createmode,
> > - (u32 *)open->op_verf.data, &open->op_truncate, &created);
> > + (u32 *)open->op_verf.data,
> > + &open->op_truncate, &created);
> > +
> > + /* If we ever decide to use different attrs to store the
> > + * verifier in nfsd_create_v3, then we'll need to change this
> > + */
> > + if (open->op_createmode == NFS4_CREATE_EXCLUSIVE && status == 0)
> > + open->op_bmval[1] |= (FATTR4_WORD1_TIME_ACCESS |
> > + FATTR4_WORD1_TIME_MODIFY);
> > } else {
> > status = nfsd_lookup(rqstp, current_fh,
> > open->op_fname.data, open->op_fname.len, &resfh);
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> NFS maillist - NFS at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nfs
>
--
Jeff Layton <jlayton at redhat.com>
More information about the NFSv4
mailing list