diff options
author | Christoph Hellwig <hch@tuxera.com> | 2010-11-23 14:38:15 +0100 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2010-11-23 14:38:15 +0100 |
commit | e34947056076ca5467ee8256d2d9cbc594a79b37 (patch) | |
tree | c1b70f51c1e4bc38e0b0389224862afe26c5720f /fs/hfsplus/super.c | |
parent | b33b7921db14abcd10c30d0ccfc68e364f5ef7fe (diff) | |
download | op-kernel-dev-e34947056076ca5467ee8256d2d9cbc594a79b37.zip op-kernel-dev-e34947056076ca5467ee8256d2d9cbc594a79b37.tar.gz |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c index 9854237..0366501 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) &str, sbi->hidden_dir); mutex_unlock(&sbi->vh_mutex); - mark_inode_dirty(sbi->hidden_dir); + hfsplus_mark_inode_dirty(sbi->hidden_dir, HFSPLUS_I_CAT_DIRTY); } out: unload_nls(sbi->nls); |