[PATCH v1 8/8] Make the sync path drain dentries and inodes

From: Mike Waychison
Date: Fri Jan 16 2009 - 21:34:38 EST


When calling sync(2), we should be flushing any pending dputs and iputs so that
any pending deletes are finalized and the metadata updated.

This patch requires more work as it's unclear whether any iput()s in this path
need to be flushed (synchronously?) or not.

Signed-off-by: Mike Waychison <mikew@xxxxxxxxxx>
---

fs/sync.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/fs/sync.c b/fs/sync.c
index ac02b56..5a595ad 100644
--- a/fs/sync.c
+++ b/fs/sync.c
@@ -23,6 +23,11 @@
*/
static void do_sync(unsigned long wait)
{
+ /*
+ * Begin by making sure that we've flushed out any pending dput()s and
+ * iput()s.
+ */
+ dput_drain_all();
wakeup_pdflush(0);
sync_inodes(0); /* All mappings, inodes and their blockdevs */
DQUOT_SYNC(NULL);

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/