On Fri, 2021-12-17 at 16:20 +0000, Matthew Wilcox wrote: > On Fri, Dec 17, 2021 at 03:29:45PM +0000, David Howells wrote: > > If a ceph file is made up of inline data, uninline that in the ceph_open() > > rather than in ceph_page_mkwrite(), ceph_write_iter(), ceph_fallocate() or > > ceph_write_begin(). > > I don't think this is the right approach. Just opening a file with > O_RDWR shouldn't take it out of inline mode; an actual write (or fault) > should be required to uninline it. > This feature is being deprecated in ceph altogether, so more aggressively uninlining of files is fine. The kernel cephfs client never supported writes to it anyway so this feature was really only used by a few brave souls. We're hoping to have it formally removed by the time the Ceph Quincy release ships (~April-May timeframe). Unfortunately, we need to keep support for it around for a bit longer since some still-supported ceph releases don't have this deprecated. > > This makes it easier to convert to using the netfs library for VM write > > hooks. > > I don't understand. You're talking about the fault path? Surely > the filesystem gets called with the vm_fault parameter only, then > calls into the netfs code, passing vmf and the operations struct? > And ceph could uninline there. > Taking the uninlining out of the write codepaths is a _good_ thing, IMO. If we were planning to keep this feature around, then I might disagree with doing this, but it fits with the current plans for inline data just fine for now. -- Jeff Layton <jlayton@xxxxxxxxxx>