diff options
author | Curt Wohlgemuth <curtw@google.com> | 2011-04-11 02:05:31 (GMT) |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2011-04-11 02:05:31 (GMT) |
commit | 0893ed458b4b1d7c7667ca7ffb8b11febe7e7e6c (patch) | |
tree | a9a4e226a6bfa7a13e0cad545280e5e8ce2a80b2 /drivers/video | |
parent | 0449641130f5652b344ef6fa39fa019d7e94660a (diff) | |
download | linux-0893ed458b4b1d7c7667ca7ffb8b11febe7e7e6c.tar.xz |
ext4: sync the directory inode in ext4_sync_parent()
ext4 has taken the stance that, in the absence of a journal,
when an fsync/fdatasync of an inode is done, the parent
directory should be sync'ed if this inode entry is new.
ext4_sync_parent(), which implements this, does indeed sync
the dirent pages for parent directories, but it does not
sync the directory *inode*. This patch fixes this.
Also now return error status from ext4_sync_parent().
I tested this using a power fail test, which panics a
machine running a file server getting requests from a
client. Without this patch, on about every other test run,
the server is missing many, many files that had been synced.
With this patch, on > 6 runs, I see zero files being lost.
Google-Bug-Id: 4179519
Signed-off-by: Curt Wohlgemuth <curtw@google.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'drivers/video')
0 files changed, 0 insertions, 0 deletions