All of lore.kernel.org
 help / color / mirror / Atom feed
From: cel@kernel.org
To: Christian Brauner <brauner@kernel.org>
Cc: <linux-fsdevel@vger.kernel.org>, Chuck Lever <chuck.lever@oracle.com>
Subject: [PATCH v2 0/3] Fix shmem_rename2 directory offset calculation
Date: Mon, 15 Apr 2024 11:20:53 -0400	[thread overview]
Message-ID: <20240415152057.4605-1-cel@kernel.org> (raw)

From: Chuck Lever <chuck.lever@oracle.com>

The existing code in shmem_rename2() allocates a fresh directory
offset value when renaming over an existing destination entry. User
space does not expect this behavior. In particular, applications
that rename while walking a directory can loop indefinitely because
they never reach the end of the directory.

The only test that is problematic at the moment is generic/449,
which live-locks (interruptibly). I don't have a baseline yet, so
I can't say whether the fix introduces this behavior or pre-dates
the shmem conversion to simple_offset.


--
Changes since v1:
- Patches reorganized for easier review and backport
- Passes git regression and fstests (with scratch device)
- Dropped the API clean-up patch for now

Chuck Lever (3):
  libfs: Fix simple_offset_rename_exchange()
  libfs: Add simple_offset_rename() API
  shmem: Fix shmem_rename2()

 fs/libfs.c         | 55 +++++++++++++++++++++++++++++++++++++++++-----
 include/linux/fs.h |  2 ++
 mm/shmem.c         |  3 +--
 3 files changed, 52 insertions(+), 8 deletions(-)


base-commit: fec50db7033ea478773b159e0e2efb135270e3b7
-- 
2.44.0


             reply	other threads:[~2024-04-15 15:21 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-15 15:20 cel [this message]
2024-04-15 15:20 ` [PATCH v2 1/3] libfs: Fix simple_offset_rename_exchange() cel
2024-04-15 15:20 ` [PATCH v2 2/3] libfs: Add simple_offset_rename() API cel
2024-04-15 15:20 ` [PATCH v2 3/3] shmem: Fix shmem_rename2() cel
2024-04-16 14:49 ` [PATCH v2 0/3] Fix shmem_rename2 directory offset calculation Chuck Lever
2024-04-17 15:26 ` Christian Brauner

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=20240415152057.4605-1-cel@kernel.org \
    --to=cel@kernel.org \
    --cc=brauner@kernel.org \
    --cc=chuck.lever@oracle.com \
    --cc=linux-fsdevel@vger.kernel.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.