All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Biggers <ebiggers@kernel.org>
To: linux-fsdevel@vger.kernel.org
Cc: linux-xfs@vger.kernel.org, linux-ext4@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net,
	Theodore Ts'o <tytso@mit.edu>, Christoph Hellwig <hch@lst.de>
Subject: [PATCH v2 00/12] lazytime fix and cleanups
Date: Fri,  8 Jan 2021 23:58:51 -0800	[thread overview]
Message-ID: <20210109075903.208222-1-ebiggers@kernel.org> (raw)

Hello,

Patch 1 fixes a bug in how __writeback_single_inode() handles lazytime
expirations.  I originally reported this last year
(https://lore.kernel.org/r/20200306004555.GB225345@gmail.com) because it
causes the FS_IOC_REMOVE_ENCRYPTION_KEY ioctl to not work properly, as
the bug causes inodes to remain dirty after a sync.

It also turns out that lazytime on XFS is partially broken because it
doesn't actually write timestamps to disk after a sync() or after
dirtytime_expire_interval.  This is fixed by the same fix.

This supersedes previously proposed fixes, including
https://lore.kernel.org/r/20200307020043.60118-1-tytso@mit.edu and
https://lore.kernel.org/r/20200325122825.1086872-3-hch@lst.de from last
year (which had some issues and didn't fix the XFS bug), and v1 of this
patchset which took a different approach
(https://lore.kernel.org/r/20210105005452.92521-1-ebiggers@kernel.org).

Patches 2-12 then clean up various things related to lazytime and
writeback, such as clarifying the semantics of ->dirty_inode() and the
inode dirty flags, and improving comments.  Most of these patches could
be applied independently if needed.

This patchset applies to v5.11-rc2.

Changed since v1:
  - Switched to the fix suggested by Jan Kara, and dropped the
    patches which introduced ->lazytime_expired().
  - Fixed bugs in the fat and ext4 patches.
  - Added patch "fs: improve comments for writeback_single_inode()".
  - Reordered the patches a bit.
  - Added Reviewed-by's.

Eric Biggers (12):
  fs: fix lazytime expiration handling in __writeback_single_inode()
  fs: correctly document the inode dirty flags
  fs: only specify I_DIRTY_TIME when needed in generic_update_time()
  fat: only specify I_DIRTY_TIME when needed in fat_update_time()
  fs: don't call ->dirty_inode for lazytime timestamp updates
  fs: pass only I_DIRTY_INODE flags to ->dirty_inode
  fs: clean up __mark_inode_dirty() a bit
  fs: drop redundant check from __writeback_single_inode()
  fs: improve comments for writeback_single_inode()
  gfs2: don't worry about I_DIRTY_TIME in gfs2_fsync()
  ext4: simplify i_state checks in __ext4_update_other_inode_time()
  xfs: remove a stale comment from xfs_file_aio_write_checks()

 Documentation/filesystems/vfs.rst |   5 +-
 fs/ext4/inode.c                   |  20 +----
 fs/f2fs/super.c                   |   3 -
 fs/fat/misc.c                     |  23 +++---
 fs/fs-writeback.c                 | 132 +++++++++++++++++-------------
 fs/gfs2/file.c                    |   4 +-
 fs/gfs2/super.c                   |   2 -
 fs/inode.c                        |  38 +++++----
 fs/xfs/xfs_file.c                 |   6 --
 include/linux/fs.h                |  18 ++--
 10 files changed, 132 insertions(+), 119 deletions(-)


base-commit: e71ba9452f0b5b2e8dc8aa5445198cd9214a6a62
-- 
2.30.0


WARNING: multiple messages have this Message-ID
From: Eric Biggers <ebiggers@kernel.org>
To: linux-fsdevel@vger.kernel.org
Cc: linux-xfs@vger.kernel.org, linux-ext4@vger.kernel.org,
	Theodore Ts'o <tytso@mit.edu>, Christoph Hellwig <hch@lst.de>,
	linux-f2fs-devel@lists.sourceforge.net
Subject: [f2fs-dev] [PATCH v2 00/12] lazytime fix and cleanups
Date: Fri,  8 Jan 2021 23:58:51 -0800	[thread overview]
Message-ID: <20210109075903.208222-1-ebiggers@kernel.org> (raw)

Hello,

Patch 1 fixes a bug in how __writeback_single_inode() handles lazytime
expirations.  I originally reported this last year
(https://lore.kernel.org/r/20200306004555.GB225345@gmail.com) because it
causes the FS_IOC_REMOVE_ENCRYPTION_KEY ioctl to not work properly, as
the bug causes inodes to remain dirty after a sync.

It also turns out that lazytime on XFS is partially broken because it
doesn't actually write timestamps to disk after a sync() or after
dirtytime_expire_interval.  This is fixed by the same fix.

This supersedes previously proposed fixes, including
https://lore.kernel.org/r/20200307020043.60118-1-tytso@mit.edu and
https://lore.kernel.org/r/20200325122825.1086872-3-hch@lst.de from last
year (which had some issues and didn't fix the XFS bug), and v1 of this
patchset which took a different approach
(https://lore.kernel.org/r/20210105005452.92521-1-ebiggers@kernel.org).

Patches 2-12 then clean up various things related to lazytime and
writeback, such as clarifying the semantics of ->dirty_inode() and the
inode dirty flags, and improving comments.  Most of these patches could
be applied independently if needed.

This patchset applies to v5.11-rc2.

Changed since v1:
  - Switched to the fix suggested by Jan Kara, and dropped the
    patches which introduced ->lazytime_expired().
  - Fixed bugs in the fat and ext4 patches.
  - Added patch "fs: improve comments for writeback_single_inode()".
  - Reordered the patches a bit.
  - Added Reviewed-by's.

Eric Biggers (12):
  fs: fix lazytime expiration handling in __writeback_single_inode()
  fs: correctly document the inode dirty flags
  fs: only specify I_DIRTY_TIME when needed in generic_update_time()
  fat: only specify I_DIRTY_TIME when needed in fat_update_time()
  fs: don't call ->dirty_inode for lazytime timestamp updates
  fs: pass only I_DIRTY_INODE flags to ->dirty_inode
  fs: clean up __mark_inode_dirty() a bit
  fs: drop redundant check from __writeback_single_inode()
  fs: improve comments for writeback_single_inode()
  gfs2: don't worry about I_DIRTY_TIME in gfs2_fsync()
  ext4: simplify i_state checks in __ext4_update_other_inode_time()
  xfs: remove a stale comment from xfs_file_aio_write_checks()

 Documentation/filesystems/vfs.rst |   5 +-
 fs/ext4/inode.c                   |  20 +----
 fs/f2fs/super.c                   |   3 -
 fs/fat/misc.c                     |  23 +++---
 fs/fs-writeback.c                 | 132 +++++++++++++++++-------------
 fs/gfs2/file.c                    |   4 +-
 fs/gfs2/super.c                   |   2 -
 fs/inode.c                        |  38 +++++----
 fs/xfs/xfs_file.c                 |   6 --
 include/linux/fs.h                |  18 ++--
 10 files changed, 132 insertions(+), 119 deletions(-)


base-commit: e71ba9452f0b5b2e8dc8aa5445198cd9214a6a62
-- 
2.30.0



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

             reply	other threads:[~2021-01-09  8:00 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-09  7:58 Eric Biggers [this message]
2021-01-09  7:58 ` [f2fs-dev] " Eric Biggers
2021-01-09  7:58 ` [PATCH v2 01/12] fs: fix lazytime expiration handling in __writeback_single_inode() Eric Biggers
2021-01-09  7:58   ` [f2fs-dev] " Eric Biggers
2021-01-11 10:48   ` Christoph Hellwig
2021-01-11 10:48     ` [f2fs-dev] " Christoph Hellwig
2021-01-11 14:46   ` Jan Kara
2021-01-11 14:46     ` [f2fs-dev] " Jan Kara
2021-01-09  7:58 ` [PATCH v2 02/12] fs: correctly document the inode dirty flags Eric Biggers
2021-01-09  7:58   ` [f2fs-dev] " Eric Biggers
2021-01-11 14:48   ` Jan Kara
2021-01-11 14:48     ` [f2fs-dev] " Jan Kara
2021-01-09  7:58 ` [PATCH v2 03/12] fs: only specify I_DIRTY_TIME when needed in generic_update_time() Eric Biggers
2021-01-09  7:58   ` [f2fs-dev] " Eric Biggers
2021-01-11 14:50   ` Jan Kara
2021-01-11 14:50     ` [f2fs-dev] " Jan Kara
2021-01-09  7:58 ` [PATCH v2 04/12] fat: only specify I_DIRTY_TIME when needed in fat_update_time() Eric Biggers
2021-01-09  7:58   ` [f2fs-dev] " Eric Biggers
2021-01-11 10:52   ` Christoph Hellwig
2021-01-11 10:52     ` [f2fs-dev] " Christoph Hellwig
2021-01-11 19:50     ` Eric Biggers
2021-01-11 19:50       ` [f2fs-dev] " Eric Biggers
2021-01-12  5:21       ` Dave Chinner
2021-01-12  5:21         ` [f2fs-dev] " Dave Chinner
2021-01-12 13:23       ` Christoph Hellwig
2021-01-12 13:23         ` [f2fs-dev] " Christoph Hellwig
2021-01-11 14:52   ` Jan Kara
2021-01-11 14:52     ` [f2fs-dev] " Jan Kara
2021-01-09  7:58 ` [PATCH v2 05/12] fs: don't call ->dirty_inode for lazytime timestamp updates Eric Biggers
2021-01-09  7:58   ` [f2fs-dev] " Eric Biggers
2021-01-11 14:54   ` Jan Kara
2021-01-11 14:54     ` [f2fs-dev] " Jan Kara
2021-01-09  7:58 ` [PATCH v2 06/12] fs: pass only I_DIRTY_INODE flags to ->dirty_inode Eric Biggers
2021-01-09  7:58   ` [f2fs-dev] " Eric Biggers
2021-01-11 14:56   ` Jan Kara
2021-01-11 14:56     ` [f2fs-dev] " Jan Kara
2021-01-09  7:58 ` [PATCH v2 07/12] fs: clean up __mark_inode_dirty() a bit Eric Biggers
2021-01-09  7:58   ` [f2fs-dev] " Eric Biggers
2021-01-11 14:59   ` Jan Kara
2021-01-11 14:59     ` [f2fs-dev] " Jan Kara
2021-01-09  7:58 ` [PATCH v2 08/12] fs: drop redundant check from __writeback_single_inode() Eric Biggers
2021-01-09  7:58   ` [f2fs-dev] " Eric Biggers
2021-01-11 10:52   ` Christoph Hellwig
2021-01-11 10:52     ` [f2fs-dev] " Christoph Hellwig
2021-01-11 15:00   ` Jan Kara
2021-01-11 15:00     ` [f2fs-dev] " Jan Kara
2021-01-09  7:59 ` [PATCH v2 09/12] fs: improve comments for writeback_single_inode() Eric Biggers
2021-01-09  7:59   ` [f2fs-dev] " Eric Biggers
2021-01-11 10:53   ` Christoph Hellwig
2021-01-11 10:53     ` [f2fs-dev] " Christoph Hellwig
2021-01-11 15:05   ` Jan Kara
2021-01-11 15:05     ` [f2fs-dev] " Jan Kara
2021-01-09  7:59 ` [PATCH v2 10/12] gfs2: don't worry about I_DIRTY_TIME in gfs2_fsync() Eric Biggers
2021-01-09  7:59   ` [f2fs-dev] " Eric Biggers
2021-01-11 15:06   ` Jan Kara
2021-01-11 15:06     ` [f2fs-dev] " Jan Kara
2021-01-09  7:59 ` [PATCH v2 11/12] ext4: simplify i_state checks in __ext4_update_other_inode_time() Eric Biggers
2021-01-09  7:59   ` [f2fs-dev] " Eric Biggers
2021-01-11 10:53   ` Christoph Hellwig
2021-01-11 10:53     ` [f2fs-dev] " Christoph Hellwig
2021-01-11 20:23     ` Eric Biggers
2021-01-11 20:23       ` [f2fs-dev] " Eric Biggers
2021-01-12 13:25       ` Christoph Hellwig
2021-01-12 13:25         ` [f2fs-dev] " Christoph Hellwig
2021-02-03  5:16         ` Theodore Ts'o
2021-02-03  5:16           ` [f2fs-dev] " Theodore Ts'o
2021-01-11 15:11   ` Jan Kara
2021-01-11 15:11     ` [f2fs-dev] " Jan Kara
2021-01-09  7:59 ` [PATCH v2 12/12] xfs: remove a stale comment from xfs_file_aio_write_checks() Eric Biggers
2021-01-09  7:59   ` [f2fs-dev] " Eric Biggers
2021-01-12 17:31   ` Darrick J. Wong
2021-01-12 17:31     ` [f2fs-dev] " Darrick J. Wong
2021-01-11 15:15 ` [PATCH v2 00/12] lazytime fix and cleanups Jan Kara
2021-01-11 15:15   ` [f2fs-dev] " Jan Kara
2021-01-11 20:44   ` Eric Biggers
2021-01-11 20:44     ` [f2fs-dev] " Eric Biggers
2021-02-03  5:11     ` Theodore Ts'o
2021-02-03  5:11       ` [f2fs-dev] " Theodore Ts'o
2021-02-03  5:22       ` Eric Biggers
2021-02-03  5:22         ` [f2fs-dev] " Eric Biggers
2021-02-03 15:49         ` Theodore Ts'o
2021-02-03 15:49           ` [f2fs-dev] " Theodore Ts'o

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210109075903.208222-1-ebiggers@kernel.org \
    --to=ebiggers@kernel.org \
    --cc=hch@lst.de \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=tytso@mit.edu \
    --subject='Re: [PATCH v2 00/12] lazytime fix and cleanups' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.