]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/6.2.15/f2fs-handle-dqget-error-in-f2fs_transfer_project_quo.patch
6.1-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 6.2.15 / f2fs-handle-dqget-error-in-f2fs_transfer_project_quo.patch
1 From 77a33e5748b47425a98517bf620848e5c2310cff Mon Sep 17 00:00:00 2001
2 From: Sasha Levin <sashal@kernel.org>
3 Date: Tue, 21 Feb 2023 22:45:50 +0800
4 Subject: f2fs: handle dqget error in f2fs_transfer_project_quota()
5
6 From: Yangtao Li <frank.li@vivo.com>
7
8 [ Upstream commit 8051692f5f23260215bfe9a72e712d93606acc5f ]
9
10 We should set the error code when dqget() failed.
11
12 Fixes: 2c1d03056991 ("f2fs: support F2FS_IOC_FS{GET,SET}XATTR")
13 Signed-off-by: Yangtao Li <frank.li@vivo.com>
14 Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
15 Signed-off-by: Sasha Levin <sashal@kernel.org>
16 ---
17 fs/f2fs/file.c | 15 ++++++++-------
18 1 file changed, 8 insertions(+), 7 deletions(-)
19
20 diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
21 index 05297427552ac..23fb9861dba40 100644
22 --- a/fs/f2fs/file.c
23 +++ b/fs/f2fs/file.c
24 @@ -3013,15 +3013,16 @@ int f2fs_transfer_project_quota(struct inode *inode, kprojid_t kprojid)
25 struct dquot *transfer_to[MAXQUOTAS] = {};
26 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
27 struct super_block *sb = sbi->sb;
28 - int err = 0;
29 + int err;
30
31 transfer_to[PRJQUOTA] = dqget(sb, make_kqid_projid(kprojid));
32 - if (!IS_ERR(transfer_to[PRJQUOTA])) {
33 - err = __dquot_transfer(inode, transfer_to);
34 - if (err)
35 - set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
36 - dqput(transfer_to[PRJQUOTA]);
37 - }
38 + if (IS_ERR(transfer_to[PRJQUOTA]))
39 + return PTR_ERR(transfer_to[PRJQUOTA]);
40 +
41 + err = __dquot_transfer(inode, transfer_to);
42 + if (err)
43 + set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
44 + dqput(transfer_to[PRJQUOTA]);
45 return err;
46 }
47
48 --
49 2.39.2
50