* [fuse] How to trigger writeback? @ 2018-09-24 8:02 Nikolaus Rath 2018-09-24 8:15 ` Miklos Szeredi 0 siblings, 1 reply; 5+ messages in thread From: Nikolaus Rath @ 2018-09-24 8:02 UTC (permalink / raw) To: linux-fsdevel, fuse-devel, Maxim Patlasov, Miklos Szeredi Hi, How do I trigger writeback from a (writeback-cache enabled) FUSE filesystem? Background: I am emulating the reflink ioctl with a magic xattr, but for that to work the filesystem needs to have all the data that is supposed to be in the copied file. Best, Nikolaus -- GPG Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F »Time flies like an arrow, fruit flies like a Banana.« ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [fuse] How to trigger writeback? 2018-09-24 8:02 [fuse] How to trigger writeback? Nikolaus Rath @ 2018-09-24 8:15 ` Miklos Szeredi 2018-09-25 8:30 ` [fuse-devel] " Nikolaus Rath 0 siblings, 1 reply; 5+ messages in thread From: Miklos Szeredi @ 2018-09-24 8:15 UTC (permalink / raw) To: linux-fsdevel, fuse-devel, Maxim Patlasov, Miklos Szeredi On Mon, Sep 24, 2018 at 10:02 AM, Nikolaus Rath <Nikolaus@rath.org> wrote: > Hi, > > How do I trigger writeback from a (writeback-cache enabled) FUSE > filesystem? No way, currently (well, triggering fsync(2)/fdatasync(2) on the filesystem would work, but such recursion is considered highly hackish). I'm working on new interfaces that will allow, among other things, triggering sync from the server. > Background: I am emulating the reflink ioctl with a magic xattr, but for > that to work the filesystem needs to have all the data that is supposed > to be in the copied file. Have a look at the copyfile patch on the for-next branch of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git Adding reflink support based on that should be pretty simple (and it takes care of flushing dirty pages). Thanks, Miklos ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [fuse-devel] [fuse] How to trigger writeback? 2018-09-24 8:15 ` Miklos Szeredi @ 2018-09-25 8:30 ` Nikolaus Rath 2018-09-25 8:48 ` Miklos Szeredi 0 siblings, 1 reply; 5+ messages in thread From: Nikolaus Rath @ 2018-09-25 8:30 UTC (permalink / raw) To: fuse-devel, Miklos Szeredi, linux-fsdevel On Sep 24 2018, Miklos Szeredi <miklos@szeredi.hu> wrote: > On Mon, Sep 24, 2018 at 10:02 AM, Nikolaus Rath <Nikolaus@rath.org> wrote: >> Hi, >> >> How do I trigger writeback from a (writeback-cache enabled) FUSE >> filesystem? > > No way, currently (well, triggering fsync(2)/fdatasync(2) on the > filesystem would work, but such recursion is considered highly > hackish). You mean sync(2)/syncfs(2), not fsync(), right? Unless my manpages are out of date, fsync() only works on a specific inode. Best, -Nikolaus -- GPG Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F »Time flies like an arrow, fruit flies like a Banana.« ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [fuse-devel] [fuse] How to trigger writeback? 2018-09-25 8:30 ` [fuse-devel] " Nikolaus Rath @ 2018-09-25 8:48 ` Miklos Szeredi 2018-09-27 8:28 ` Nikolaus Rath 0 siblings, 1 reply; 5+ messages in thread From: Miklos Szeredi @ 2018-09-25 8:48 UTC (permalink / raw) To: fuse-devel, Miklos Szeredi, linux-fsdevel On Tue, Sep 25, 2018 at 10:30 AM, Nikolaus Rath <Nikolaus@rath.org> wrote: > On Sep 24 2018, Miklos Szeredi <miklos@szeredi.hu> wrote: >> On Mon, Sep 24, 2018 at 10:02 AM, Nikolaus Rath <Nikolaus@rath.org> wrote: >>> Hi, >>> >>> How do I trigger writeback from a (writeback-cache enabled) FUSE >>> filesystem? >> >> No way, currently (well, triggering fsync(2)/fdatasync(2) on the >> filesystem would work, but such recursion is considered highly >> hackish). > > > You mean sync(2)/syncfs(2), not fsync(), right? Unless my manpages are > out of date, fsync() only works on a specific inode. I would've thought you only need writeback of a specific inode for reflink, no? Thanks, Miklos ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [fuse-devel] [fuse] How to trigger writeback? 2018-09-25 8:48 ` Miklos Szeredi @ 2018-09-27 8:28 ` Nikolaus Rath 0 siblings, 0 replies; 5+ messages in thread From: Nikolaus Rath @ 2018-09-27 8:28 UTC (permalink / raw) To: Miklos Szeredi; +Cc: fuse-devel, Miklos Szeredi, linux-fsdevel On Sep 25 2018, Miklos Szeredi <miklos@szeredi.hu> wrote: > On Tue, Sep 25, 2018 at 10:30 AM, Nikolaus Rath <Nikolaus@rath.org> wrote: >> On Sep 24 2018, Miklos Szeredi <miklos@szeredi.hu> wrote: >>> On Mon, Sep 24, 2018 at 10:02 AM, Nikolaus Rath <Nikolaus@rath.org> wrote: >>>> Hi, >>>> >>>> How do I trigger writeback from a (writeback-cache enabled) FUSE >>>> filesystem? >>> >>> No way, currently (well, triggering fsync(2)/fdatasync(2) on the >>> filesystem would work, but such recursion is considered highly >>> hackish). >> >> >> You mean sync(2)/syncfs(2), not fsync(), right? Unless my manpages are >> out of date, fsync() only works on a specific inode. > > I would've thought you only need writeback of a specific inode for reflink, no? Aeh, yeah, I did not mention that. Since I couldn't implement real reflink support but have to go through xattrs, my "reflink" also supports reflinking entire directory trees. I guess I could still issue a bunch of fsyncs(), but I think syncfs() is nicer (I can even move it into the client program that sets the magic xattr so that the filesystem does not call into itself). Best, -Nikolaus -- GPG Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F »Time flies like an arrow, fruit flies like a Banana.« ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-09-27 14:45 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-09-24 8:02 [fuse] How to trigger writeback? Nikolaus Rath 2018-09-24 8:15 ` Miklos Szeredi 2018-09-25 8:30 ` [fuse-devel] " Nikolaus Rath 2018-09-25 8:48 ` Miklos Szeredi 2018-09-27 8:28 ` Nikolaus Rath
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).