On 2023/05/01 14:15, Tetsuo Handa wrote: > Hmm, where is the serialization that avoids concurrent > shmem_mknod()/shmem_mknod() or shmem_mknod()/shmem_unlink() ? > i_size_write() says "need locking around it (normally i_mutex)"... > Since filename_create() calls inode_lock_nested(path->dentry->d_inode, I_MUTEX_PARENT) and done_path_create() calls inode_unlock(path->dentry->d_inode), serialization looks OK. Just the name is no longer i_mutex ? > 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() ?