Amir Goldstein 6ae654392b fs: move kiocb_start_write() into vfs_iocb_iter_write()
In vfs code, sb_start_write() is usually called after the permission hook
in rw_verify_area().  vfs_iocb_iter_write() is an exception to this rule,
where kiocb_start_write() is called by its callers.

Move kiocb_start_write() from the callers into vfs_iocb_iter_write()
after the rw_verify_area() checks, to make them "start-write-safe".

The semantics of vfs_iocb_iter_write() is changed, so that the caller is
responsible for calling kiocb_end_write() on completion only if async
iocb was queued.  The completion handlers of both callers were adapted
to this semantic change.

This is needed for fanotify "pre content" events.

Suggested-by: Jan Kara <jack@suse.cz>
Suggested-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Link: https://lore.kernel.org/r/20231122122715.2561213-14-amir73il@gmail.com
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2023-11-24 10:37:44 +01:00
..
2023-11-04 09:20:04 -10:00
2023-11-07 12:11:26 -08:00
2023-11-01 15:28:33 -10:00
2023-10-30 09:47:13 -10:00
2023-11-07 12:11:26 -08:00
2023-11-10 09:52:56 -08:00
2023-10-30 09:47:13 -10:00
2023-11-03 15:15:47 -10:00
2023-11-07 12:11:26 -08:00
2023-11-07 12:11:26 -08:00
2023-11-07 12:11:26 -08:00
2023-11-03 22:24:11 +09:00
2023-11-07 12:11:26 -08:00
2023-11-07 12:11:26 -08:00
2023-11-07 12:11:26 -08:00
2023-11-07 12:11:26 -08:00
2023-11-07 12:11:26 -08:00
2023-11-07 12:11:26 -08:00
2023-11-07 11:54:17 -08:00
2023-10-30 09:47:13 -10:00
2023-10-30 09:47:13 -10:00
2023-11-07 12:11:26 -08:00
2023-11-07 12:11:26 -08:00
2023-11-07 12:11:26 -08:00
2023-11-03 15:15:47 -10:00
2023-11-08 13:39:16 -08:00
2023-08-31 12:07:34 -05:00
2023-11-07 12:11:26 -08:00
2023-11-07 12:11:26 -08:00
2023-11-07 12:11:26 -08:00
2023-10-30 09:47:13 -10:00
2023-10-30 19:26:39 -10:00
2023-10-30 09:47:13 -10:00
2023-11-11 17:17:22 -08:00
2023-11-07 12:11:26 -08:00
2023-11-03 07:41:18 -10:00
\n
2023-11-02 08:19:51 -10:00
2023-11-07 12:11:26 -08:00
2023-11-08 13:22:16 -08:00
2023-10-30 19:28:19 -10:00
2023-10-30 19:28:19 -10:00
2023-06-26 09:50:21 -07:00
2023-05-17 09:16:59 +02:00
2023-08-21 13:46:25 -07:00
2023-10-30 09:14:19 -10:00
2023-10-19 11:02:47 +02:00
2023-08-28 11:04:18 -07:00
2023-11-01 15:28:33 -10:00
2023-08-19 12:12:12 +02:00
2023-11-07 12:11:26 -08:00
2023-10-22 17:08:07 -04:00
2023-10-30 09:14:19 -10:00
2023-05-19 04:30:22 +02:00
2023-05-19 04:30:22 +02:00
2023-11-07 11:46:31 -08:00
2023-02-20 11:53:11 -08:00