mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-09-21 20:22:13 +08:00
fs/ntfs3: Optimization in ntfs_set_state()
The current volume flags are updated only if VOLUME_FLAG_DIRTY has been changed. Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
This commit is contained in:
parent
1842fbc8d2
commit
625602487a
@ -925,6 +925,7 @@ int ntfs_set_state(struct ntfs_sb_info *sbi, enum NTFS_DIRTY_FLAGS dirty)
|
|||||||
struct VOLUME_INFO *info;
|
struct VOLUME_INFO *info;
|
||||||
struct mft_inode *mi;
|
struct mft_inode *mi;
|
||||||
struct ntfs_inode *ni;
|
struct ntfs_inode *ni;
|
||||||
|
__le16 info_flags;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Do not change state if fs was real_dirty.
|
* Do not change state if fs was real_dirty.
|
||||||
@ -957,6 +958,8 @@ int ntfs_set_state(struct ntfs_sb_info *sbi, enum NTFS_DIRTY_FLAGS dirty)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
info_flags = info->flags;
|
||||||
|
|
||||||
switch (dirty) {
|
switch (dirty) {
|
||||||
case NTFS_DIRTY_ERROR:
|
case NTFS_DIRTY_ERROR:
|
||||||
ntfs_notice(sbi->sb, "Mark volume as dirty due to NTFS errors");
|
ntfs_notice(sbi->sb, "Mark volume as dirty due to NTFS errors");
|
||||||
@ -970,8 +973,10 @@ int ntfs_set_state(struct ntfs_sb_info *sbi, enum NTFS_DIRTY_FLAGS dirty)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* Cache current volume flags. */
|
/* Cache current volume flags. */
|
||||||
sbi->volume.flags = info->flags;
|
if (info_flags != info->flags) {
|
||||||
mi->dirty = true;
|
sbi->volume.flags = info->flags;
|
||||||
|
mi->dirty = true;
|
||||||
|
}
|
||||||
err = 0;
|
err = 0;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
Loading…
Reference in New Issue
Block a user