Re: [PATCH] writeback: avoid double-writing the inode on a lazytime expiration

Theodore Y. Ts'o
2020-03-11T12:58:03Z

On Tue, Mar 10, 2020 at 08:20:09PM -0700, Eric Biggers wrote:
> Thanks Ted! This fixes the fscrypt test failure.
>
> However, are you sure this works correctly on all filesystems? I'm not sure
> about XFS. XFS only implements ->dirty_inode(), not ->write_inode(), and in its
> ->dirty_inode() it does:
...
> if (flag != I_DIRTY_SYNC || !(inode->i_state & I_DIRTY_TIME))
> return;

That's true, but when the timestamps were originally modified,
dirty_inode() will be called with flag == I_DIRTY_TIME, which will
*not* be a no-op; which is to say, XFS will force the timestamps to be
updated on disk when the timestamps are first dirtied, because it
doesn't support I_DIRTY_TIME.

So I think we're fine.

- Ted