Skip to content

Commit

Permalink
xfs: remove explicit xfs_sync_data/xfs_sync_attr calls on umount
Browse files Browse the repository at this point in the history
On the final put of a superblock the VFS already calls sync_filesystem
for us to write out all data and wait for it.  No need to start another
asynchronous writeback inside ->put_super.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
  • Loading branch information
Christoph Hellwig authored and Alex Elder committed Jul 26, 2010
1 parent f2bde9b commit 64c8614
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 17 deletions.
12 changes: 0 additions & 12 deletions fs/xfs/linux-2.6/xfs_super.c
Original file line number Diff line number Diff line change
Expand Up @@ -1146,18 +1146,6 @@ xfs_fs_put_super(

xfs_syncd_stop(mp);

if (!(sb->s_flags & MS_RDONLY)) {
/*
* XXX(hch): this should be SYNC_WAIT.
*
* Or more likely not needed at all because the VFS is already
* calling ->sync_fs after shutting down all filestem
* operations and just before calling ->put_super.
*/
xfs_sync_data(mp, 0);
xfs_sync_attr(mp, 0);
}

/*
* Blow away any referenced inode in the filestreams cache.
* This can and will cause log traffic as inodes go inactive
Expand Down
4 changes: 2 additions & 2 deletions fs/xfs/linux-2.6/xfs_sync.c
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ xfs_sync_inode_attr(
/*
* Write out pagecache data for the whole filesystem.
*/
int
STATIC int
xfs_sync_data(
struct xfs_mount *mp,
int flags)
Expand All @@ -329,7 +329,7 @@ xfs_sync_data(
/*
* Write out inode metadata (attributes) for the whole filesystem.
*/
int
STATIC int
xfs_sync_attr(
struct xfs_mount *mp,
int flags)
Expand Down
3 changes: 0 additions & 3 deletions fs/xfs/linux-2.6/xfs_sync.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,6 @@ typedef struct xfs_sync_work {
int xfs_syncd_init(struct xfs_mount *mp);
void xfs_syncd_stop(struct xfs_mount *mp);

int xfs_sync_attr(struct xfs_mount *mp, int flags);
int xfs_sync_data(struct xfs_mount *mp, int flags);

int xfs_quiesce_data(struct xfs_mount *mp);
void xfs_quiesce_attr(struct xfs_mount *mp);

Expand Down

0 comments on commit 64c8614

Please sign in to comment.