ceph: flush dirty caps via the cap_dirty list
authorSage Weil <sage@newdream.net>
Wed, 14 Oct 2009 21:27:38 +0000 (14:27 -0700)
committerSage Weil <sage@newdream.net>
Fri, 16 Oct 2009 01:14:35 +0000 (18:14 -0700)
Previously we were flushing dirty caps by passing an extra flag
when traversing the delayed caps list.  Besides being a bit ugly,
that can also miss caps that are dirty but didn't result in a
cap requeue: notably, mark_caps_dirty().

Separate the flushing into a separate helper, and traverse the
cap_dirty list.

This also brings i_dirty_item in line with i_dirty_caps: we are
on the list IFF caps != 0.  We carry an inode ref IFF
dirty_caps|flushing_caps != 0.

Lose the unused return value from __ceph_mark_caps_dirty().

Signed-off-by: Sage Weil <sage@newdream.net>
fs/ceph/caps.c
fs/ceph/mds_client.c
fs/ceph/super.h

diff --cc fs/ceph/caps.c
Simple merge
Simple merge
diff --cc fs/ceph/super.h
Simple merge