diff options
author | Javier Martinez Canillas <javierm@redhat.com> | 2022-06-10 09:57:20 +0200 |
---|---|---|
committer | akpm <akpm@linux-foundation.org> | 2022-06-16 19:58:22 -0700 |
commit | da87e1725ae2136baeb9aac04c572c283afc917f (patch) | |
tree | 5819ea0d697708730d1b0e394c8db7fb25989cac /crypto/sha256_generic.c | |
parent | 204d03203a145b443cd8676dc12dbb47e1a3751f (diff) | |
download | linux-da87e1725ae2136baeb9aac04c572c283afc917f.tar.gz linux-da87e1725ae2136baeb9aac04c572c283afc917f.tar.bz2 linux-da87e1725ae2136baeb9aac04c572c283afc917f.zip |
fat: add renameat2 RENAME_EXCHANGE flag support
The renameat2 RENAME_EXCHANGE flag allows to atomically exchange two paths
but is currently not supported by the Linux vfat filesystem driver.
Add a vfat_rename_exchange() helper function that implements this support.
The super block lock is acquired during the operation to ensure atomicity,
and in the error path actions made are reversed also with the mutex held.
It makes the operation as transactional as possible, within the limitation
impossed by vfat due not having a journal with logs to replay.
Link: https://lkml.kernel.org/r/20220610075721.1182745-4-javierm@redhat.com
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Acked-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: Alexander Larsson <alexl@redhat.com>
Cc: Christian Kellner <ckellner@redhat.com>
Cc: Chung-Chiang Cheng <cccheng@synology.com>
Cc: Colin Walters <walters@verbum.org>
Cc: Lennart Poettering <lennart@poettering.net>
Cc: Muhammad Usama Anjum <usama.anjum@collabora.com>
Cc: Peter Jones <pjones@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'crypto/sha256_generic.c')
0 files changed, 0 insertions, 0 deletions