summaryrefslogtreecommitdiff
path: root/fs/super.c
diff options
context:
space:
mode:
authorAmir Goldstein <amir73il@gmail.com>2023-08-22 20:50:59 +0300
committerAmir Goldstein <amir73il@gmail.com>2023-10-31 01:12:54 +0300
commit389a4a4a19851211bb9c40d31c664591fb206f69 (patch)
tree09e00f277c9026cb2a1a60dfae0a366cb2f06695 /fs/super.c
parent5f034d34737e8c440bbbd13e5ef283793d841140 (diff)
downloadlinux-389a4a4a19851211bb9c40d31c664591fb206f69.tar.xz
ovl: punt write aio completion to workqueue
We want to protect concurrent updates of ovl inode size and mtime (i.e. ovl_copyattr()) from aio completion context. Punt write aio completion to a workqueue so that we can protect ovl_copyattr() with a spinlock. Export sb_init_dio_done_wq(), so that overlayfs can use its own dio workqueue to punt aio completions. Suggested-by: Jens Axboe <axboe@kernel.dk> Link: https://lore.kernel.org/r/8620dfd3-372d-4ae0-aa3f-2fe97dda1bca@kernel.dk/ Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Diffstat (limited to 'fs/super.c')
-rw-r--r--fs/super.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/super.c b/fs/super.c
index c7b452e12e4c..4cedeb7a7d79 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -2157,3 +2157,4 @@ int sb_init_dio_done_wq(struct super_block *sb)
destroy_workqueue(wq);
return 0;
}
+EXPORT_SYMBOL_GPL(sb_init_dio_done_wq);