aboutsummaryrefslogtreecommitdiffstats
path: root/fs/backing-file.c
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2025-11-03 12:26:53 +0100
committerChristian Brauner <brauner@kernel.org>2025-11-04 12:36:36 +0100
commitc3076d146e312af1ee2eff0287e298cf20774b39 (patch)
tree494655c0b3e77c817c0870d27c13ce65c99edfcb /fs/backing-file.c
parentf119feaa06586aed78b98b13ac9bcfac942c583e (diff)
downloadlinux-c3076d146e312af1ee2eff0287e298cf20774b39.tar.gz
backing-file: use credential guards for splice read
Use credential guards for scoped credential override with automatic restoration on scope exit. Link: https://patch.msgid.link/20251103-work-creds-guards-simple-v1-5-a3e156839e7f@kernel.org Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/backing-file.c')
-rw-r--r--fs/backing-file.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/backing-file.c b/fs/backing-file.c
index 2ba0f3c7f203b0..4d4edf906ef34a 100644
--- a/fs/backing-file.c
+++ b/fs/backing-file.c
@@ -283,15 +283,13 @@ ssize_t backing_file_splice_read(struct file *in, struct kiocb *iocb,
unsigned int flags,
struct backing_file_ctx *ctx)
{
- const struct cred *old_cred;
ssize_t ret;
if (WARN_ON_ONCE(!(in->f_mode & FMODE_BACKING)))
return -EIO;
- old_cred = override_creds(ctx->cred);
- ret = vfs_splice_read(in, &iocb->ki_pos, pipe, len, flags);
- revert_creds(old_cred);
+ scoped_with_creds(ctx->cred)
+ ret = vfs_splice_read(in, &iocb->ki_pos, pipe, len, flags);
if (ctx->accessed)
ctx->accessed(iocb->ki_filp);