linux/fs/afs
David Howells 5611ef280d afs: Fix page overput in afs_fill_page()
afs_fill_page() loads the page it wants to fill into the afs_read request
without incrementing its refcount - but then calls afs_put_read() to clean
up afterwards, which then releases a ref on the page.

Fix this by getting a ref on the page before calling
afs_vnode_fetch_data().

This causes sync after a write to hang in afs_writepages_region() because
find_get_pages_tag() gets confused and doesn't return.

Fixes: 196ee9cd2d ("afs: Make afs_fs_fetch_data() take a list of pages")
Reported-by: Marc Dionne <marc.dionne@auristor.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Tested-by: Marc Dionne <marc.dionne@auristor.com>
2017-03-16 16:27:43 +00:00
..
afs_cm.h
afs_fs.h
afs_vl.h
afs.h
cache.c
callback.c afs: Kill afs_wait_mode 2017-01-09 11:10:02 +00:00
cell.c
cmservice.c afs: Move UUID struct to linux/uuid.h 2017-02-10 16:34:17 +00:00
dir.c lib/vsprintf.c: remove %Z support 2017-02-27 18:43:47 -08:00
file.c afs: Conditionalise a new unused variable 2017-01-16 13:30:52 -05:00
flock.c fs/afs/flock: Remove deprecated create_singlethread_workqueue 2016-09-04 21:41:39 +01:00
fsclient.c afs: Kill afs_wait_mode 2017-01-09 11:10:02 +00:00
inode.c statx: Add a system call to make enhanced file info available 2017-03-02 20:51:15 -05:00
internal.h statx: Add a system call to make enhanced file info available 2017-03-02 20:51:15 -05:00
Kconfig
main.c afs: Use core kernel UUID generation 2017-02-10 16:34:17 +00:00
Makefile
misc.c kafs: Add more "unified AFS" error codes 2015-04-01 21:36:15 +01:00
mntpt.c fs: Better permission checking for submounts 2017-02-02 04:36:12 +13:00
netdevices.c afs: Use core kernel UUID generation 2017-02-10 16:34:17 +00:00
proc.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
rxrpc.c Merge branch 'WIP.sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-03-03 10:16:38 -08:00
security.c
server.c rxrpc: Provide a way for AFS to ask for the peer address of a call 2016-08-30 16:07:53 +01:00
super.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
vlclient.c afs: Kill afs_wait_mode 2017-01-09 11:10:02 +00:00
vlocation.c afs: Kill afs_wait_mode 2017-01-09 11:10:02 +00:00
vnode.c afs: Kill afs_wait_mode 2017-01-09 11:10:02 +00:00
volume.c afs: Make afs_readpages() fetch data in bulk 2017-01-06 16:54:41 +00:00
write.c afs: Fix page overput in afs_fill_page() 2017-03-16 16:27:43 +00:00