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 PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 27 Apr 2022 18:02:06 +0200 From: Jan Kara <jack@...e.cz> To: Harshad Shirwadkar <harshadshirwadkar@...il.com> Cc: linux-ext4@...r.kernel.org, riteshh@...ux.ibm.com, jack@...e.cz, tytso@....edu Subject: Re: [PATCH v3 3/6] ext4: mark inode dirty before grabbing i_data_sem in ext4_setattr On Tue 19-04-22 10:31:40, Harshad Shirwadkar wrote: > From: Harshad Shirwadkar <harshadshirwadkar@...il.com> > > Mark inode dirty first and then grab i_data_sem in ext4_setattr(). > > Signed-off-by: Harshad Shirwadkar <harshadshirwadkar@...il.com> > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index e88940251afd..6eae0804c6fd 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -5455,11 +5455,12 @@ int ext4_setattr(struct user_namespace *mnt_userns, struct dentry *dentry, > (attr->ia_size > 0 ? attr->ia_size - 1 : 0) >> > inode->i_sb->s_blocksize_bits); > > - down_write(&EXT4_I(inode)->i_data_sem); > - EXT4_I(inode)->i_disksize = attr->ia_size; > rc = ext4_mark_inode_dirty(handle, inode); > if (!error) > error = rc; > + down_write(&EXT4_I(inode)->i_data_sem); > + EXT4_I(inode)->i_disksize = attr->ia_size; > + Hum, this isn't going to fly because ext4_mark_inode_dirty() copies data from ext4_inode_info to the on-disk buffer and thus new i_disksize will not be stored on the disk after your change. Honza -- Jan Kara <jack@...e.com> SUSE Labs, CR
Powered by blists - more mailing lists