diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-05-16 14:41:14 -0400 |
---|---|---|
committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2016-05-17 15:48:05 -0400 |
commit | f538d0ba5be39c52addff01c7ec31f0b90e57dfc (patch) | |
tree | 63b6a1b35e3b21c998849000c410e10678614b05 /fs/nfs/pnfs.c | |
parent | 6e14a92c363e1f42c6e1339da8413fcfbe1bdc3a (diff) |
pNFS: Fix a leaked layoutstats flag
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'fs/nfs/pnfs.c')
-rw-r--r-- | fs/nfs/pnfs.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c index 5b404d926e08..faea98281c75 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c | |||
@@ -2407,7 +2407,7 @@ pnfs_report_layoutstat(struct inode *inode, gfp_t gfp_flags) | |||
2407 | spin_lock(&inode->i_lock); | 2407 | spin_lock(&inode->i_lock); |
2408 | if (!NFS_I(inode)->layout) { | 2408 | if (!NFS_I(inode)->layout) { |
2409 | spin_unlock(&inode->i_lock); | 2409 | spin_unlock(&inode->i_lock); |
2410 | goto out; | 2410 | goto out_clear_layoutstats; |
2411 | } | 2411 | } |
2412 | hdr = NFS_I(inode)->layout; | 2412 | hdr = NFS_I(inode)->layout; |
2413 | pnfs_get_layout_hdr(hdr); | 2413 | pnfs_get_layout_hdr(hdr); |
@@ -2436,6 +2436,7 @@ out_free: | |||
2436 | kfree(data); | 2436 | kfree(data); |
2437 | out_put: | 2437 | out_put: |
2438 | pnfs_put_layout_hdr(hdr); | 2438 | pnfs_put_layout_hdr(hdr); |
2439 | out_clear_layoutstats: | ||
2439 | smp_mb__before_atomic(); | 2440 | smp_mb__before_atomic(); |
2440 | clear_bit(NFS_INO_LAYOUTSTATS, &nfsi->flags); | 2441 | clear_bit(NFS_INO_LAYOUTSTATS, &nfsi->flags); |
2441 | smp_mb__after_atomic(); | 2442 | smp_mb__after_atomic(); |