linux/fs/ceph
Yan, Zheng 67d95da538 ceph: introduce global empty snap context
commit 97c85a828f upstream.

Current snaphost code does not properly handle moving inode from one
empty snap realm to another empty snap realm. After changing inode's
snap realm, some dirty pages' snap context can be not equal to inode's
i_head_snap. This can trigger BUG() in ceph_put_wrbuffer_cap_refs()

The fix is introduce a global empty snap context for all empty snap
realm. This avoids triggering the BUG() for filesystem with no snapshot.

Fixes: http://tracker.ceph.com/issues/9928

Signed-off-by: Yan, Zheng <zyan@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
Cc: Markus Blank-Burian <burian@muenster.de>
[ luis: backported to 3.16: adjusted context ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
History 2015-02-17 15:12:01 +00:00
..
acl.c ceph: remove useless ACL check 2014-06-06 09:29:50 +08:00
addr.c ceph: do_sync is never initialized 2015-01-15 10:44:10 +00:00
cache.c ceph: fscache: Wait for completion of object initialization 2014-04-03 10:33:53 +08:00
cache.h ceph: fscache: add an interface to synchronize object store limit 2014-04-03 10:33:53 +08:00
caps.c mds: check cap ID when handling cap export message 2014-06-06 09:29:55 +08:00
ceph_frag.c ceph: factor out libceph from Ceph file system 2010-10-20 15:37:28 -07:00
debugfs.c fs/ceph/debugfs.c: replace seq_printf by seq_puts 2014-06-06 16:08:06 -07:00
dir.c move d_rcu from overlapping d_child to overlapping d_alias 2015-01-15 10:44:58 +00:00
export.c ceph: ceph_get_parent() can be static 2014-06-06 09:29:50 +08:00
file.c ceph: switch to iter_file_splice_write() 2014-06-12 00:21:12 -04:00
inode.c move d_rcu from overlapping d_child to overlapping d_alias 2015-01-15 10:44:58 +00:00
ioctl.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2014-05-05 15:17:02 -07:00
ioctl.h ceph: fully initialize new layout 2012-05-16 14:28:27 -05:00
Kconfig ceph: add acl for cephfs 2013-12-31 20:32:01 +02:00
locks.c locks: ensure that fl_owner is always initialized properly in flock and lease codepaths 2014-06-02 08:09:29 -04:00
Makefile ceph: add acl for cephfs 2013-12-31 20:32:01 +02:00
mds_client.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2014-06-12 23:06:23 -07:00
mds_client.h ceph: include time stamp in every MDS request 2014-06-06 09:30:00 +08:00
mdsmap.c fs/ceph: replace pr_warning by pr_warn 2014-06-06 16:08:06 -07:00
snap.c ceph: introduce global empty snap context 2015-02-17 15:12:01 +00:00
strings.c ceph: add get_name() NFS export callback 2014-04-03 10:33:53 +08:00
super.c ceph: introduce global empty snap context 2015-02-17 15:12:01 +00:00
super.h ceph: introduce global empty snap context 2015-02-17 15:12:01 +00:00
xattr.c ceph: don't include ceph.{file,dir}.layout vxattr in listxattr() 2014-04-04 21:07:21 -07:00