--- x/fs/read_write.c +++ y/fs/read_write.c 2024-06-12 18:38:40.826180800 +0800 @@ -583,6 +583,7 @@ ssize_t vfs_write(struct file *file, con return ret; if (count > MAX_RW_COUNT) count = MAX_RW_COUNT; + ihold(file_inode(file)); file_start_write(file); if (file->f_op->write) ret = file->f_op->write(file, buf, count, pos); @@ -596,6 +597,7 @@ ssize_t vfs_write(struct file *file, con } inc_syscw(current); file_end_write(file); + iput(file_inode(file)); return ret; }