alistair23-linux/fs/nfsd
J. Bruce Fields e864c189e1 nfsd: catch errors in decode_fattr earlier
3c8e03166a "NFSv4: do exact check about attribute specified" fixed
some handling of unsupported-attribute errors, but it also delayed
checking for unwriteable attributes till after we decode them.  This
could lead to odd behavior in the case a client attemps to set an
attribute we don't know about followed by one we try to parse.  In that
case the parser for the known attribute will attempt to parse the
unknown attribute.  It should fail in some safe way, but the error might
at least be incorrect (probably bad_xdr instead of inval).  So, it's
better to do that check at the start.

As far as I know this doesn't cause any problems with current clients
but it might be a minor issue e.g. if we encounter a future client that
supports a new attribute that we currently don't.

Cc: Yu Zhiguo <yuzg@cn.fujitsu.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2016-11-01 15:47:52 -04:00
..
acl.h
auth.c cred: simpler, 1D supplementary groups 2016-10-07 18:46:30 -07:00
auth.h
blocklayout.c fs: Replace current_fs_time() with current_time() 2016-09-27 21:06:22 -04:00
blocklayoutxdr.c Highlights: 2016-08-04 19:59:06 -04:00
blocklayoutxdr.h
cache.h
current_stateid.h
export.c
export.h
fault_inject.c
flexfilelayout.c nfsd: don't set a FL_LAYOUT lease for flexfiles layouts 2016-09-16 16:15:52 -04:00
flexfilelayoutxdr.c
flexfilelayoutxdr.h
idmap.h
Kconfig
lockd.c
Makefile
netns.h nfsd: move blocked lock handling under a dedicated spinlock 2016-10-24 16:51:21 -04:00
nfs2acl.c
nfs3acl.c
nfs3proc.c
nfs3xdr.c
nfs4acl.c
nfs4callback.c nfsd: plumb in a CB_NOTIFY_LOCK operation 2016-09-26 15:20:35 -04:00
nfs4idmap.c
nfs4layouts.c nfsd: fix error handling for clients that fail to return the layout 2016-11-01 15:47:43 -04:00
nfs4proc.c nfsd: clean up supported attribute handling 2016-11-01 15:47:52 -04:00
nfs4recover.c
nfs4state.c nfsd: Fix general protection fault in release_lock_stateid() 2016-11-01 15:24:43 -04:00
nfs4xdr.c nfsd: catch errors in decode_fattr earlier 2016-11-01 15:47:52 -04:00
nfscache.c nfsd: more robust allocation failure handling in nfsd_reply_cache_init 2016-11-01 15:47:43 -04:00
nfsctl.c nfsd: randomize SETCLIENTID reply to help distinguish servers 2016-09-26 15:20:38 -04:00
nfsd.h nfsd: catch errors in decode_fattr earlier 2016-11-01 15:47:52 -04:00
nfsfh.c nfsd: check d_can_lookup in fh_verify of directories 2016-08-04 17:11:48 -04:00
nfsfh.h
nfsproc.c Some RDMA work and some good bugfixes, and two new features that could 2016-10-13 21:04:42 -07:00
nfssvc.c NFSD: fix corruption in notifier registration 2016-09-26 14:17:45 -04:00
nfsxdr.c
pnfs.h nfsd: don't set a FL_LAYOUT lease for flexfiles layouts 2016-09-16 16:15:52 -04:00
state.h nfsd: add a LRU list for blocked locks 2016-09-26 15:20:36 -04:00
stats.c
stats.h
trace.c
trace.h
vfs.c NFSD: Implement the COPY call 2016-10-07 14:54:25 -04:00
vfs.h NFSD: Implement the COPY call 2016-10-07 14:54:25 -04:00
xdr.h
xdr3.h
xdr4.h NFSD: Implement the COPY call 2016-10-07 14:54:25 -04:00
xdr4cb.h nfsd: plumb in a CB_NOTIFY_LOCK operation 2016-09-26 15:20:35 -04:00