linux-bl808/fs/nfs
ZhangXiaoxu 33ea5aaa87 nfs: Fix nfsi->nrequests count error on nfs_inode_remove_request
When xfstests testing, there are some WARNING as below:

WARNING: CPU: 0 PID: 6235 at fs/nfs/inode.c:122 nfs_clear_inode+0x9c/0xd8
Modules linked in:
CPU: 0 PID: 6235 Comm: umount.nfs
Hardware name: linux,dummy-virt (DT)
pstate: 60000005 (nZCv daif -PAN -UAO)
pc : nfs_clear_inode+0x9c/0xd8
lr : nfs_evict_inode+0x60/0x78
sp : fffffc000f68fc00
x29: fffffc000f68fc00 x28: fffffe00c53155c0
x27: fffffe00c5315000 x26: fffffc0009a63748
x25: fffffc000f68fd18 x24: fffffc000bfaaf40
x23: fffffc000936d3c0 x22: fffffe00c4ff5e20
x21: fffffc000bfaaf40 x20: fffffe00c4ff5d10
x19: fffffc000c056000 x18: 000000000000003c
x17: 0000000000000000 x16: 0000000000000000
x15: 0000000000000040 x14: 0000000000000228
x13: fffffc000c3a2000 x12: 0000000000000045
x11: 0000000000000000 x10: 0000000000000000
x9 : 0000000000000000 x8 : 0000000000000000
x7 : 0000000000000000 x6 : fffffc00084b027c
x5 : fffffc0009a64000 x4 : fffffe00c0e77400
x3 : fffffc000c0563a8 x2 : fffffffffffffffb
x1 : 000000000000764e x0 : 0000000000000001
Call trace:
 nfs_clear_inode+0x9c/0xd8
 nfs_evict_inode+0x60/0x78
 evict+0x108/0x380
 dispose_list+0x70/0xa0
 evict_inodes+0x194/0x210
 generic_shutdown_super+0xb0/0x220
 nfs_kill_super+0x40/0x88
 deactivate_locked_super+0xb4/0x120
 deactivate_super+0x144/0x160
 cleanup_mnt+0x98/0x148
 __cleanup_mnt+0x38/0x50
 task_work_run+0x114/0x160
 do_notify_resume+0x2f8/0x308
 work_pending+0x8/0x14

The nrequest should be increased/decreased only if PG_INODE_REF flag
was setted.

But in the nfs_inode_remove_request function, it maybe decrease when
no PG_INODE_REF flag, this maybe lead nrequests count error.

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: ZhangXiaoxu <zhangxiaoxu5@huawei.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2019-10-02 08:52:17 -04:00
..
blocklayout
filelayout pNFS/filelayout: enable LAYOUTGET on OPEN 2019-09-24 16:28:38 -04:00
flexfilelayout pNFS/flexfiles: Don't time out requests on hard mounts 2019-08-26 15:31:29 -04:00
cache_lib.c
cache_lib.h
callback.c
callback.h
callback_proc.c
callback_xdr.c
client.c
delegation.c NFSv4.1: Only reap expired delegations 2019-08-04 22:35:40 -04:00
delegation.h NFSv4: Fix delegation state recovery 2019-08-04 22:35:40 -04:00
dir.c NFS Client Updates for Linux 5.3 2019-09-26 12:20:14 -07:00
direct.c NFS: Ensure O_DIRECT reports an error if the bytes read/written is 0 2019-08-19 08:56:04 -04:00
dns_resolve.c
dns_resolve.h
export.c
file.c
fscache-index.c
fscache.c NFS: Fix regression whereby fscache errors are appearing on 'nofsc' mounts 2019-08-04 22:35:41 -04:00
fscache.h NFS: Fix regression whereby fscache errors are appearing on 'nofsc' mounts 2019-08-04 22:35:41 -04:00
getroot.c
inode.c NFS: Fix inode fileid checks in attribute revalidation code 2019-09-02 13:10:19 -04:00
internal.h NFS Client Updates for Linux 5.3 2019-09-26 12:20:14 -07:00
io.c
iostat.h
Kconfig
Makefile
mount_clnt.c
namespace.c
netns.h
nfs.h
nfs2super.c
nfs2xdr.c
nfs3_fs.h
nfs3acl.c
nfs3client.c
nfs3proc.c NFSv3: use nfs_add_or_obtain() to create and reference inodes 2019-09-20 15:15:24 -04:00
nfs3super.c
nfs3xdr.c
nfs4_fs.h NFSv4: Handle NFS4ERR_OLD_STATEID in CLOSE/OPEN_DOWNGRADE 2019-09-20 15:56:19 -04:00
nfs4client.c NFSv4: Fix a potential sleep while atomic in nfs4_do_reclaim() 2019-08-04 22:35:40 -04:00
nfs4file.c NFSv4: Fix return values for nfs4_file_open() 2019-08-19 08:56:04 -04:00
nfs4getroot.c
nfs4idmap.c
nfs4idmap.h
nfs4namespace.c
nfs4proc.c NFSv4: Handle NFS4ERR_OLD_STATEID in LOCKU 2019-09-20 16:00:14 -04:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c NFSv4: Handle NFS4ERR_OLD_STATEID in CLOSE/OPEN_DOWNGRADE 2019-09-20 15:56:19 -04:00
nfs4super.c
nfs4sysctl.c
nfs4trace.c
nfs4trace.h
nfs4xdr.c fs: nfs: Fix possible null-pointer dereferences in encode_attrs() 2019-08-20 09:30:50 -04:00
nfs42.h
nfs42proc.c
nfs42xdr.c
nfsroot.c
nfstrace.c
nfstrace.h kill LOOKUP_NO_EVAL, don't bother including namei.h from audit.h 2019-08-30 21:29:32 -04:00
pagelist.c NFS: Fix initialisation of I/O result struct in nfs_pgio_rpcsetup 2019-08-19 08:56:04 -04:00
pnfs.c pNFS: Handle NFS4ERR_OLD_STATEID on layoutreturn by bumping the state seqid 2019-09-20 15:48:35 -04:00
pnfs.h pNFS: Handle NFS4ERR_OLD_STATEID on layoutreturn by bumping the state seqid 2019-09-20 15:48:35 -04:00
pnfs_dev.c
pnfs_nfs.c pNFS/flexfiles: Turn off soft RPC calls 2019-08-26 15:31:29 -04:00
proc.c NFSv2: Fix write regression 2019-08-27 10:24:56 -04:00
read.c NFS: Fix spurious EIO read errors 2019-08-26 15:31:29 -04:00
super.c NFS Client Updates for Linux 5.3 2019-09-26 12:20:14 -07:00
symlink.c
sysctl.c
sysfs.c
sysfs.h
unlink.c
write.c nfs: Fix nfsi->nrequests count error on nfs_inode_remove_request 2019-10-02 08:52:17 -04:00