aboutsummaryrefslogtreecommitdiffstats
path: root/fs/hfsplus/super.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@tuxera.com>2010-11-23 08:38:15 -0500
committerChristoph Hellwig <hch@lst.de>2010-11-23 08:38:15 -0500
commite34947056076ca5467ee8256d2d9cbc594a79b37 (patch)
treec1b70f51c1e4bc38e0b0389224862afe26c5720f /fs/hfsplus/super.c
parentb33b7921db14abcd10c30d0ccfc68e364f5ef7fe (diff)
hfsplus: optimize fsync
Avoid doing unessecary work in fsync. Do nothing unless the inode was marked dirty, and only write the various metadata inodes out if they contain any dirty state from this inode. This is archived by adding three new dirty bits to the hfsplus-specific inode which are set in the correct places. Signed-off-by: Christoph Hellwig <hch@tuxera.com>
Diffstat (limited to 'fs/hfsplus/super.c')
-rw-r--r--fs/hfsplus/super.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c
index 985423728e1d..036650123c4c 100644
--- a/fs/hfsplus/super.c
+++ b/fs/hfsplus/super.c
@@ -472,7 +472,7 @@ static int hfsplus_fill_super(struct super_block *sb, void *data, int silent)
472 &str, sbi->hidden_dir); 472 &str, sbi->hidden_dir);
473 mutex_unlock(&sbi->vh_mutex); 473 mutex_unlock(&sbi->vh_mutex);
474 474
475 mark_inode_dirty(sbi->hidden_dir); 475 hfsplus_mark_inode_dirty(sbi->hidden_dir, HFSPLUS_I_CAT_DIRTY);
476 } 476 }
477out: 477out:
478 unload_nls(sbi->nls); 478 unload_nls(sbi->nls);