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)
commitafcdaea3f2a78ce4873bd7e98a6d603bda23d167
tree08defc298e2c27816d70bd41c8c3ecc80a82ba79
parentcdc35f96277314bbfeefd0505410cabd69aebd8d
ceph: flush dirty caps via the cap_dirty list

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