test_client_pin case is failing
client: invalidate kernel dentries one by one
Our trick to trim the whole kernel dentry tree does not work for 3.18+ kernel.
The fix is trim kernel dentries one by one.
Signed-off-by: Yan, Zheng <email@example.com>
- Status changed from New to In Progress
After much head scratching and log examination, this appears to be a kernel regression (assuming our behaviour was valid to begin with).
v3.18-rc6 does not work
Investigation continues... recent changes to d_invalidate look interesting.
yes, I think it caused by the d_invalidate change. In 3.18-rc kernel, d_invalidate() unhash dentry regardless if the dentry is still busy. the change makes our tick that invalidates kernel cache not work. but I don't think it's a kernel regression.
For 3.18+ kernel, I think we can iterate the all dir inodes and invalidate dentry one by one.
- Status changed from In Progress to Fix Under Review
- Assignee changed from John Spray to Zheng Yan
- Status changed from Fix Under Review to Resolved
- Status changed from Resolved to Pending Backport
Can we get a giant backport for this, please?
The fix is buggy, we shouldn't backport it. we should use patches for #10277 instead
- Status changed from Pending Backport to Resolved
Hum, I was thinking that we could backport the simple fix since most users will be on older kernels where it behaves properly anyway. But I suppose Giant is new enough that's not really a safe bet.
Also available in: Atom