Bug 90021
Summary: | client shows wrong(old) inode number, when client refer file directly. | ||
---|---|---|---|
Product: | File System | Reporter: | Nakajima Akira (nakajima.akira) |
Component: | CIFS | Assignee: | fs_cifs (fs_cifs) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | jlayton, lsahlber, smfrench, szg00000 |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.18.0 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
patch__set uniquied to inode cache
patch__if different uniqueid, then return error |
Description
Nakajima Akira
2014-12-18 08:57:50 UTC
This looks wrong to me. The inode number is derived solely from the uniqueid, so you can't go and change that in place without rehashing the inode. If a dentry all of a sudden shows that it has a different inode number, then that dentry should be invalidated and a new one instantiated with the new inode. The right thing to do is to ensure that cifs_d_revalidate returns appropriately when the inode number changes. Created attachment 161301 [details]
patch__if different uniqueid, then return error
Thanks for review. I posted new patch (attachment 161301 [details]) which return error. (then cifs_d_revalidate return error, and make new dentry and inode) With this patch, next problem is little bit changed. "Limited at the time of the same inode number" https://bugzilla.kernel.org/show_bug.cgi?id=90031 Can not be reproduced in current kernel so has been fixed sometime in the past. |