[PATCH 2/2] ntfs: do not mark the volume clean from sync_fs

From: DaeMyung Kang

Date: Sun May 10 2026 - 13:12:16 EST


ntfs_sync_fs() can be called while the filesystem remains mounted
read-write, for example by sync(2) or periodic writeback. Clearing
VOLUME_IS_DIRTY from that path marks the volume clean before the mount
lifetime has ended.

If the system crashes after sync_fs() clears the bit but before unmount or
remount-read-only, the volume can be left looking clean even though a clean
shutdown did not happen. Keep the dirty bit set during sync_fs(); the
unmount and remount-read-only paths already clear it when no NTFS errors
were seen.

Fixes: 6251f0b0de7d ("ntfs: update super block operations")
Signed-off-by: DaeMyung Kang <charsyam@xxxxxxxxx>
---
fs/ntfs/super.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
index e8ecc52..024d363 100644
--- a/fs/ntfs/super.c
+++ b/fs/ntfs/super.c
@@ -1895,7 +1895,6 @@ static void ntfs_shutdown(struct super_block *sb)
static int ntfs_sync_fs(struct super_block *sb, int wait)
{
struct ntfs_volume *vol = NTFS_SB(sb);
- int err = 0;

if (NVolShutdown(vol))
return -EIO;
@@ -1903,15 +1902,10 @@ static int ntfs_sync_fs(struct super_block *sb, int wait)
if (!wait)
return 0;

- /* If there are some dirty buffers in the bdev inode */
- if (ntfs_clear_volume_flags(vol, VOLUME_IS_DIRTY)) {
- ntfs_warning(sb, "Failed to clear dirty bit in volume information flags. Run chkdsk.");
- err = -EIO;
- }
sync_inodes_sb(sb);
sync_blockdev(sb->s_bdev);
blkdev_issue_flush(sb->s_bdev);
- return err;
+ return 0;
}

/*
--
2.43.0