diff options
author | Andreas Gruenbacher <agruenba@redhat.com> | 2018-02-28 12:48:53 -0700 |
---|---|---|
committer | Bob Peterson <rpeterso@redhat.com> | 2018-03-08 09:26:20 -0700 |
commit | 83998ccd9bfff881f04ce03f6964f8a83e6c5b54 (patch) | |
tree | 0d7ce75cf2531a013e58d0681daa596c5b36fe32 /fs/gfs2/log.h | |
parent | 174d1232ebc84fcde8f5889d1171c9c7e74a10a7 (diff) | |
download | lwn-83998ccd9bfff881f04ce03f6964f8a83e6c5b54.tar.gz lwn-83998ccd9bfff881f04ce03f6964f8a83e6c5b54.zip |
gfs2: Dirty source inode during rename
Mark the source inode dirty during a rename instead of just updating the
underlying buffer head. Otherwise, fsync may find the inode clean and
will then skip flushing the journal. A subsequent power failure will
cause the rename to be lost. This happens in command sequences like:
xfs_io -f -c 'pwrite 0 4096' -c 'fsync' foo
mv foo bar
xfs_io -c 'fsync' bar
# power failure
Fixes xfstests generic/322, generic/376.
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Diffstat (limited to 'fs/gfs2/log.h')
0 files changed, 0 insertions, 0 deletions