ceph: remove warning when ceph_releasepage() is called on dirty page
authorNeilBrown <neilb@suse.com>
Wed, 31 Aug 2016 02:59:29 +0000 (12:59 +1000)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 3 Oct 2016 14:13:49 +0000 (16:13 +0200)
commite55f1a1871b148802b42ee3807edcb6528ffc27d
treec83984f65cf1fd3dbe84d17165c17d35602813cb
parent5d7eb1a3225309b294275385ece36fee256d5c46
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>
fs/ceph/addr.c