summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYangtao Li <frank.li@vivo.com>2023-02-27 20:02:15 +0800
committerJan Kara <jack@suse.cz>2023-03-20 17:27:42 +0100
commitf8107c996f5419a5b964b9796d736c7b81f099a0 (patch)
tree33a5add146e2d2a5eb66c92e19fe57268508269b
parentdced733d7fa9386f7c96bbf7721360472c0aed47 (diff)
downloadlwn-f8107c996f5419a5b964b9796d736c7b81f099a0.tar.gz
lwn-f8107c996f5419a5b964b9796d736c7b81f099a0.zip
quota: fixup *_write_file_info() to return proper error code
For v1_write_file_info function, when quota_write() returns 0, it should be considered an EIO error. And for v2_write_file_info(), fix to proper error return code instead of raw number. Signed-off-by: Yangtao Li <frank.li@vivo.com> Signed-off-by: Jan Kara <jack@suse.cz> Message-Id: <20230227120216.31306-1-frank.li@vivo.com>
-rw-r--r--fs/quota/quota_v1.c2
-rw-r--r--fs/quota/quota_v2.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/fs/quota/quota_v1.c b/fs/quota/quota_v1.c
index cd92e5fa0062..a0db3f195e95 100644
--- a/fs/quota/quota_v1.c
+++ b/fs/quota/quota_v1.c
@@ -206,7 +206,7 @@ static int v1_write_file_info(struct super_block *sb, int type)
sizeof(struct v1_disk_dqblk), v1_dqoff(0));
if (ret == sizeof(struct v1_disk_dqblk))
ret = 0;
- else if (ret > 0)
+ else if (ret >= 0)
ret = -EIO;
out:
up_write(&dqopt->dqio_sem);
diff --git a/fs/quota/quota_v2.c b/fs/quota/quota_v2.c
index b1467f3921c2..ae99e7b88205 100644
--- a/fs/quota/quota_v2.c
+++ b/fs/quota/quota_v2.c
@@ -212,7 +212,7 @@ static int v2_write_file_info(struct super_block *sb, int type)
up_write(&dqopt->dqio_sem);
if (size != sizeof(struct v2_disk_dqinfo)) {
quota_error(sb, "Can't write info structure");
- return -1;
+ return size < 0 ? size : -EIO;
}
return 0;
}