OpenCloudOS-Kernel/fs/nfsd
Neil Brown c1ac3ffcd0 nfsd: Fix possible BUG_ON firing in set_change_info
If vfs_getattr in fill_post_wcc returns an error, we don't
set fh_post_change.
For NFSv4, this can result in set_change_info triggering a BUG_ON.
i.e. fh_post_saved being zero isn't really a bug.

So:
 - instead of BUGging when fh_post_saved is zero, just clear ->atomic.
 - if vfs_getattr fails in fill_post_wcc, take a copy of i_ctime anyway.
   This will be used i seg_change_info, but not overly trusted.
 - While we are there, remove the pointless 'if' statements in set_change_info.
   There is no harm setting all the values.

Signed-off-by: NeilBrown <neilb@suse.de>
Cc: stable@kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2010-12-08 11:44:04 -05:00
..
Kconfig lockd: push lock_flocks down 2010-10-27 21:39:39 +02:00
Makefile knfsd: trivial makefile cleanup 2007-05-09 12:30:54 -07:00
auth.c nfsd: remove pointless paths in file headers 2009-12-15 15:01:47 -05:00
auth.h nfsd: minor fs/nfsd/auth.h cleanup 2008-02-01 16:42:05 -05:00
cache.h nfsd: remove pointless paths in file headers 2009-12-15 15:01:47 -05:00
export.c sunrpc: Add net to pure API calls 2010-09-27 10:16:11 -04:00
lockd.c nfsd: remove pointless paths in file headers 2009-12-15 15:01:47 -05:00
nfs2acl.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
nfs3acl.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
nfs3proc.c nfsd: minor nfsd read api cleanup 2010-07-30 12:54:54 -04:00
nfs3xdr.c nfsd: Fix possible BUG_ON firing in set_change_info 2010-12-08 11:44:04 -05:00
nfs4acl.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
nfs4callback.c NFSD: remove duplicate NFS4_STATEID_SIZE 2010-10-24 18:02:53 -04:00
nfs4idmap.c nfsd/idmap: drop special request deferal in favour of improved default. 2010-09-21 17:08:31 -04:00
nfs4proc.c nfsd: disable deferral for NFSv4 2010-09-21 17:02:27 -04:00
nfs4recover.c sanitize vfs_fsync calling conventions 2010-05-21 18:31:21 -04:00
nfs4state.c BKL: remove references to lock_kernel from comments 2010-11-17 08:59:32 -08:00
nfs4xdr.c nfsd4: adjust buflen for encoded attrs bitmap based on actual bitmap length 2010-10-01 16:52:24 -04:00
nfscache.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
nfsctl.c convert get_sb_single() users 2010-10-29 04:16:28 -04:00
nfsd.h nfsd4: expire clients more promptly 2010-10-11 20:00:18 -04:00
nfsfh.c nfsd: fix "insecure" export option 2009-12-20 20:19:51 -08:00
nfsfh.h nfsd: fix BUG at fs/nfsd/nfsfh.h:199 on unlink 2010-10-13 15:48:55 -04:00
nfsproc.c nfsd: minor nfsd read api cleanup 2010-07-30 12:54:54 -04:00
nfssvc.c sunrpc: Add net argument to svc_create_xprt 2010-10-01 17:18:54 -04:00
nfsxdr.c nfsd: remove pointless paths in file headers 2009-12-15 15:01:47 -05:00
state.h nfsd4: move minorversion to client 2010-10-21 10:12:02 -04:00
stats.c nfsd: remove pointless paths in file headers 2009-12-15 15:01:47 -05:00
vfs.c fs: add sync_inode_metadata 2010-10-25 21:18:19 -04:00
vfs.h nfsd: minor nfsd read api cleanup 2010-07-30 12:54:54 -04:00
xdr.h nfsd: remove pointless paths in file headers 2009-12-15 15:01:47 -05:00
xdr3.h nfsd: remove pointless paths in file headers 2009-12-15 15:01:47 -05:00
xdr4.h nfsd: Fix possible BUG_ON firing in set_change_info 2010-12-08 11:44:04 -05:00