linux/fs/ceph
Sage Weil af0ed569d7 ceph: fix snap writeback when racing with writes
There are two problems that come up when we try to queue a capsnap while a
write is in progress:

 - The FILE_WR cap is held, but not yet dirty, so we may queue a capsnap
   with dirty == 0.  That will crash later in __ceph_flush_snaps().  Or
   on the FILE_WR cap if a write is in progress.
 - We may not have i_head_snapc set, which causes problems pretty quickly.
   Look to the snaprealm in this case.

Reviewed-by: Yehuda Sadeh <yehuda@hq.newdream.net>
Signed-off-by: Sage Weil <sage@newdream.net>
2011-07-26 11:26:31 -07:00
..
addr.c ceph: use ihold when we already have an inode ref 2011-06-07 21:34:11 -07:00
caps.c ceph: use ihold when we already have an inode ref 2011-06-07 21:34:11 -07:00
ceph_frag.c ceph: factor out libceph from Ceph file system 2010-10-20 15:37:28 -07:00
debugfs.c ceph: remove debugfs debug cruft 2011-03-21 12:24:20 -07:00
dir.c ceph: use flag bit for at_end readdir flag 2011-07-26 11:26:18 -07:00
export.c ceph: use ihold when we already have an inode ref 2011-06-07 21:34:11 -07:00
file.c ceph: add F_SYNC file flag to force sync (non-O_DIRECT) io 2011-07-26 11:26:07 -07:00
inode.c ceph: use ihold when we already have an inode ref 2011-06-07 21:34:11 -07:00
ioctl.c ceph: add F_SYNC file flag to force sync (non-O_DIRECT) io 2011-07-26 11:26:07 -07:00
ioctl.h ceph: add F_SYNC file flag to force sync (non-O_DIRECT) io 2011-07-26 11:26:07 -07:00
Kconfig ceph: factor out libceph from Ceph file system 2010-10-20 15:37:28 -07:00
locks.c ceph: unwind canceled flock state 2011-06-07 21:36:45 -07:00
Makefile ceph: Makefile: Remove unnessary code 2011-01-12 15:15:13 -08:00
mds_client.c ceph analog of cifs build_path_from_dentry() race fix 2011-07-16 23:43:58 -04:00
mds_client.h ceph: fix cap flush race reentrancy 2011-05-24 11:52:12 -07:00
mdsmap.c ceph: factor out libceph from Ceph file system 2010-10-20 15:37:28 -07:00
snap.c ceph: fix snap writeback when racing with writes 2011-07-26 11:26:31 -07:00
strings.c ceph: factor out libceph from Ceph file system 2010-10-20 15:37:28 -07:00
super.c ceph: Move secret key parsing earlier. 2011-03-29 12:11:16 -07:00
super.h ceph: use flag bit for at_end readdir flag 2011-07-26 11:26:18 -07:00
xattr.c ceph: use ihold when we already have an inode ref 2011-06-07 21:34:11 -07:00