On 2023/05/01 23:05, Tetsuo Handa wrote: >> Also, there was a similar report on updating i_{ctime,mtime} to current_time() >> which means that i_size is not the only field that is causing data race. >> https://syzkaller.appspot.com/bug?id=067d40ab9ab23a6fa0a8156857ed54e295062a29 > > Do we want to as well wrap i_{ctime,mtime} using data_race() ? > I think we need to use inode_lock_shared()/inode_unlock_shared() when calling generic_fillattr(), for i_{ctime,mtime} (128bits) are too large to copy atomically. Is it safe to call inode_lock_shared()/inode_unlock_shared() from generic_fillattr()? Is some filesystem already holding inode lock before calling generic_fillattr()?