Feature #41796
open
fs/ceph: add lazyio propagate/synchronize support
Added by Patrick Donnelly over 4 years ago.
Updated over 3 years ago.
Description
I imagine this would be an ioctl of some kind.
Also, what are the feature/functionality gaps between ceph-fuse and the kclient on lazyio?
Related issues
1 (1 open — 0 closed)
How is lazyio_propagate different from fsync, or sync_file_range() syscall? Don't they do the same thing?
What should we do about metadata -- particularly, file size and mtime changes?
Trond M. had drafted some patches for the kernel NFS client at one point that gave similar control over the client-side cache. I don't believe they were ever merged, but perhaps we can repurpose the ioctls that he was using for this.
Jeff Layton wrote:
How is lazyio_propagate different from fsync, or sync_file_range() syscall? Don't they do the same thing?
sync_file_range sounds like the same thing. However, I think there may be an implied page cache drop for the pages in that range too. I don't know and maybe no one really does. If you can't find a reason to add a separate propagate call to the kernel that isn't already satisfied by an existing interface, I'm okay with indefinitely holding the addition of the new syscall/ioctl. Or maybe just stub it an return ENOSYS or similar?
What should we do about metadata -- particularly, file size and mtime changes?
You're asking how synchronize should update file size/mtime? I'd ask Zheng.
Trond M. had drafted some patches for the kernel NFS client at one point that gave similar control over the client-side cache. I don't believe they were ever merged, but perhaps we can repurpose the ioctls that he was using for this.
Well these would be client initiated cache drops for particular inodes. We have also been interested in having the ceph-fuse client drop dentries/inodes/pages from the kernel cache but that's a separate problem although you might see how they're related in the code.
- Assignee deleted (
Jeff Layton)
- Blocks Bug #40284: kclient: evaluate/fix/add lazio support in the kernel added
Also available in: Atom
PDF