On Tue, Mar 30, 2021 at 09:32:23AM -0700, Darrick J. Wong wrote: > Why not make discarding the journal part of FITRIM then? Unfortunately, the fstrim_range structure doesn't have a place for a flags field, and FITRIM works by specifying a range of LBA's: struct fstrim_range { __u64 start; __u64 len; __u64 minlen; }; I suppose we could do something where some combination of start/len means "also checkpoint and discard the journal", but that seems rather kludgy. > It occurred to me overnight that another way to look at this ioctl > proposal is that it checkpoints the filesystem and has a flag to discard > the journal blocks too. Given that we're now only two days away from > my traditional bootfs[1] drum-banging day, and there's real user > demand[2] for bootloaders to be able to force a journal checkpoint, How about if we have an ioctl which is "checkpoint journal", which can be file system independent (e.g., defined in include/uapi/linux/fs.h) which takes a u32 flags field, where we define a flag bit to mean "also discard the unused part of the journal after the checkpoint"? It seems that would also solve your bootfs() use case. - Ted