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-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html