Rafael Aquini
a0b54adda3
mm: fix page leak at nfs_symlink()
...
Changes in commit a0b8cab3b9 ("mm: remove lru parameter from
__pagevec_lru_add and remove parts of pagevec API") have introduced a
call to add_to_page_cache_lru() which causes a leak in nfs_symlink() as
now the page gets an extra refcount that is not dropped.
Jan Stancek observed and reported the leak effect while running test8
from Connectathon Testsuite. After several iterations over the test
case, which creates several symlinks on a NFS mountpoint, the test
system was quickly getting into an out-of-memory scenario.
This patch fixes the page leak by dropping that extra refcount
add_to_page_cache_lru() is grabbing.
Signed-off-by: Jan Stancek <jstancek@redhat.com>
Signed-off-by: Rafael Aquini <aquini@redhat.com>
Acked-by: Mel Gorman <mgorman@suse.de>
Acked-by: Rik van Riel <riel@redhat.com>
Cc: Jeff Layton <jlayton@redhat.com>
Cc: Trond Myklebust <trond.myklebust@primarydata.com>
Cc: <stable@vger.kernel.org> [3.11.x+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-02-10 16:01:42 -08:00
..
blocklayout
Linux 3.13-rc6
2013-12-31 09:51:02 -07:00
objlayout
NFSv4.1 use pnfs_device maxcount for the objectlayout gdia_maxcount
2013-06-28 15:34:45 -04:00
cache_lib.c
cache_lib.h
callback.c
nfs: Use PTR_ERR_OR_ZERO in 'nfs41_callback_up' function
2013-10-28 18:16:55 -04:00
callback.h
NFS: Add in v4.2 callback operation
2013-06-08 16:20:18 -04:00
callback_proc.c
NFS: When displaying session slot numbers, use "%u" consistently
2013-09-03 15:26:30 -04:00
callback_xdr.c
Merge branch 'labeled-nfs' into linux-next
2013-06-28 16:29:51 -04:00
client.c
NFS: cache parsed auth_info in nfs_server
2013-10-28 15:37:43 -04:00
delegation.c
NFSv4: Add tracepoints for debugging delegations
2013-08-22 08:58:24 -04:00
delegation.h
dir.c
mm: fix page leak at nfs_symlink()
2014-02-10 16:01:42 -08:00
direct.c
nfs: page cache invalidation for dio
2014-01-13 17:29:50 -05:00
dns_resolve.c
NFS: Enabling v4.2 should not recompile nfsd and lockd
2013-11-19 16:20:40 -05:00
dns_resolve.h
file.c
NFS: dprintk() should not print negative fileids and inode numbers
2014-01-05 15:51:23 -05:00
fscache-index.c
fscache.c
NFS: Use i_writecount to control whether to get an fscache cookie in nfs_open()
2013-09-27 18:40:25 +01:00
fscache.h
NFS: Use i_writecount to control whether to get an fscache cookie in nfs_open()
2013-09-27 18:40:25 +01:00
getroot.c
NFS:Add labels to client function prototypes
2013-06-08 16:20:15 -04:00
idmap.c
NFSv4: Convert idmapper to use the new framework for pipefs dentries
2013-09-01 11:12:42 -04:00
inode.c
NFS client bugfixes for Linux 3.14
2014-01-31 15:39:07 -08:00
internal.h
NFS: Enabling v4.2 should not recompile nfsd and lockd
2013-11-19 16:20:40 -05:00
iostat.h
Kconfig
nfs: fix pnfs Kconfig defaults
2013-11-15 13:41:43 -05:00
Makefile
NFS: Enable slot table helpers for NFSv4.0
2013-09-03 15:26:33 -04:00
mount_clnt.c
nfs: have nfs_mount fake up a auth_flavs list when the server didn't provide it
2013-06-28 15:51:51 -04:00
namespace.c
nfs: use %p[dD] instead of open-coded (and often racy) equivalents
2013-10-24 23:34:50 -04:00
netns.h
nfs.h
nfs2super.c
nfs2xdr.c
nfs3acl.c
NFSv3: Fix return value of nfs3_proc_setacls
2014-02-03 13:14:23 -05:00
nfs3client.c
nfs3proc.c
nfs: fix xattr inode op pointers when disabled
2014-01-30 09:37:49 -08:00
nfs3super.c
nfs: use generic posix ACL infrastructure for v3 Posix ACLs
2014-01-26 08:26:20 -05:00
nfs3xdr.c
nfs4_fs.h
NFSv4.1 free slot before resending I/O to MDS
2014-01-29 11:54:55 -05:00
nfs4client.c
NFSv4.1: nfs4_destroy_session must call rpc_destroy_waitqueue
2014-02-01 15:13:39 -05:00
nfs4file.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2013-11-13 15:34:18 +09:00
nfs4filelayout.c
NFSv4.1: Cleanup
2014-01-29 12:26:57 -05:00
nfs4filelayout.h
NFSv4.1: Use layout credentials for get_deviceinfo calls
2013-06-06 16:24:37 -04:00
nfs4filelayoutdev.c
nfs: fix dead code of ipv6_addr_scope
2014-01-05 15:38:21 -05:00
nfs4getroot.c
NFSv4: Fix security auto-negotiation
2013-09-07 16:18:30 -04:00
nfs4namespace.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2013-11-13 15:34:18 +09:00
nfs4proc.c
NFSv4: Fix memory corruption in nfs4_proc_open_confirm
2014-02-01 15:13:39 -05:00
nfs4renewd.c
nfs4session.c
NFSv4.1: nfs4_destroy_session must call rpc_destroy_waitqueue
2014-02-01 15:13:39 -05:00
nfs4session.h
NFSv4.1: nfs4_destroy_session must call rpc_destroy_waitqueue
2014-02-01 15:13:39 -05:00
nfs4state.c
point to the right include file in a comment (left over from a9004abc3)
2014-01-05 15:51:35 -05:00
nfs4super.c
NFSv4.1: Fix a race in nfs4_write_inode
2014-01-13 13:34:36 -05:00
nfs4sysctl.c
nfs4trace.c
NFSv4.1: Add tracepoints for debugging slot table operations
2013-08-22 08:58:27 -04:00
nfs4trace.h
NFSv4.1: Add tracepoints for debugging test_stateid events
2013-08-22 08:58:27 -04:00
nfs4xdr.c
nfs: initialize the ACL support bits to zero.
2014-01-31 08:28:16 -05:00
nfsroot.c
nfstrace.c
NFS: Add event tracing for generic NFS lookups
2013-08-22 08:58:18 -04:00
nfstrace.h
NFS: fix the handling of NFS_INO_INVALID_DATA flag in nfs_revalidate_mapping
2014-01-27 15:35:56 -05:00
pagelist.c
NFS: Don't check lock owner compatability unless file is locked (part 2)
2013-09-06 11:27:41 -04:00
pnfs.c
NFSv4.1: Fix a race in nfs4_write_inode
2014-01-13 13:34:36 -05:00
pnfs.h
NFSv4.1: Don't trust attributes if a pNFS LAYOUTCOMMIT is outstanding
2014-01-13 12:08:11 -05:00
pnfs_dev.c
proc.c
nfs: use %p[dD] instead of open-coded (and often racy) equivalents
2013-10-24 23:34:50 -04:00
read.c
NFS: dprintk() should not print negative fileids and inode numbers
2014-01-05 15:51:23 -05:00
super.c
NFS: correctly report misuse of "migration" mount option.
2013-11-15 13:41:43 -05:00
symlink.c
sysctl.c
unlink.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2013-11-13 15:34:18 +09:00
write.c
nfs: add memory barriers around NFS_INO_INVALID_DATA and NFS_INO_INVALIDATING
2014-01-28 14:48:18 -05:00