alistair23-linux/fs/ceph
NeilBrown e55f1a1871 ceph: remove warning when ceph_releasepage() is called on dirty page
If O_DIRECT writes are racing with buffered writes, then
the call to invalidate_inode_pages2_range() can call ceph_releasepage()
on dirty pages.

Most filesystems hold inode_lock() across O_DIRECT writes so they do not
suffer this race, but cephfs deliberately drops the lock, and opens a window
for the race.

This race can be triggered with the generic/036 test from the xfstests
test suite.  It doesn't happen every time, but it does happen often.

As the possibilty is expected, remove the warning, and instead include
the PageDirty() status in the debug message.

Signed-off-by: NeilBrown <neilb@suse.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Yan, Zheng <zyan@redhat.com>
2016-10-03 16:13:49 +02:00
..
acl.c ceph: Get rid of d_find_alias in ceph_set_acl 2016-04-23 15:41:30 -04:00
addr.c ceph: remove warning when ceph_releasepage() is called on dirty page 2016-10-03 16:13:49 +02:00
cache.c ceph: fix spelling mistake: "resgister" -> "register" 2016-07-28 02:55:40 +02:00
cache.h ceph: improve fscache revalidation 2016-06-01 10:31:50 +02:00
caps.c ceph: fix null pointer dereference in ceph_flush_snaps() 2016-08-08 21:41:43 +02:00
ceph_frag.c
debugfs.c ceph: don't show symlink target in debugfs/mdsc 2016-05-26 01:15:32 +02:00
dir.c ceph: handle LOOKUP_RCU in ceph_d_revalidate 2016-07-28 03:00:39 +02:00
export.c ceph: fix d_obtain_alias() misuses 2016-06-24 23:49:03 -04:00
file.c ceph: ignore error from invalidate_inode_pages2_range() in direct write 2016-10-03 16:13:49 +02:00
inode.c The highlights are: 2016-08-02 19:39:09 -04:00
ioctl.c ceph: reduce i_nr_by_mode array size 2016-07-28 02:55:39 +02:00
ioctl.h
Kconfig
locks.c
Makefile
mds_client.c ceph: initialize pathbase in the !dentry case in encode_caps_cb() 2016-08-09 17:26:56 +02:00
mds_client.h ceph: unify cap flush and snapcap flush 2016-07-28 03:00:42 +02:00
mdsmap.c ceph: CEPH_FEATURE_MDSENC support 2016-05-26 01:15:31 +02:00
snap.c ceph: cleanup ceph_flush_snaps() 2016-07-28 03:00:44 +02:00
strings.c
super.c ceph: Mark the file cache as unreclaimable 2016-07-28 03:00:45 +02:00
super.h ceph: optimize cap flush waiting 2016-07-28 03:00:45 +02:00
xattr.c ceph: rados pool namespace support 2016-07-28 02:55:38 +02:00