lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <20250508175908.1004880-4-harshadshirwadkar@gmail.com> Date: Thu, 8 May 2025 17:59:02 +0000 From: Harshad Shirwadkar <harshadshirwadkar@...il.com> To: linux-ext4@...r.kernel.org Cc: tytso@....edu, jack@...e.cz, harshads@...gle.com, Harshad Shirwadkar <harshadshirwadkar@...il.com> Subject: [PATCH v9 3/9] ext4: mark inode dirty before grabbing i_data_sem in ext4_setattr Mark inode dirty first and then grab i_data_sem in ext4_setattr(). Signed-off-by: Harshad Shirwadkar <harshadshirwadkar@...il.com> --- fs/ext4/inode.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index d58b99407..3005053e9 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -5568,9 +5568,7 @@ int ext4_setattr(struct mnt_idmap *idmap, struct dentry *dentry, down_write(&EXT4_I(inode)->i_data_sem); old_disksize = EXT4_I(inode)->i_disksize; EXT4_I(inode)->i_disksize = attr->ia_size; - rc = ext4_mark_inode_dirty(handle, inode); - if (!error) - error = rc; + /* * We have to update i_size under i_data_sem together * with i_disksize to avoid races with writeback code @@ -5581,6 +5579,9 @@ int ext4_setattr(struct mnt_idmap *idmap, struct dentry *dentry, else EXT4_I(inode)->i_disksize = old_disksize; up_write(&EXT4_I(inode)->i_data_sem); + rc = ext4_mark_inode_dirty(handle, inode); + if (!error) + error = rc; ext4_journal_stop(handle); if (error) goto out_mmap_sem; -- 2.49.0.1045.g170613ef41-goog
Powered by blists - more mailing lists