Propagate correct error number from write_dquots() to
quota_write_inode().

Signed-off-by: Chao Yu <yuch...@huawei.com>
---
 fsck/mkquota.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/fsck/mkquota.c b/fsck/mkquota.c
index c1abbc4..84f9d3d 100644
--- a/fsck/mkquota.c
+++ b/fsck/mkquota.c
@@ -42,10 +42,11 @@ static void print_dquot(const char *desc, struct dquot *dq)
 #define print_dquot(...)
 #endif
 
-static void write_dquots(dict_t *dict, struct quota_handle *qh)
+static int write_dquots(dict_t *dict, struct quota_handle *qh)
 {
        dnode_t         *n;
        struct dquot    *dq;
+       int retval = 0;
 
        for (n = dict_first(dict); n; n = dict_next(dict, n)) {
                dq = dnode_get(n);
@@ -53,10 +54,13 @@ static void write_dquots(dict_t *dict, struct quota_handle 
*qh)
                        print_dquot("write", dq);
                        dq->dq_h = qh;
                        update_grace_times(dq);
-                       if (qh->qh_ops->commit_dquot(dq))
+                       if (qh->qh_ops->commit_dquot(dq)) {
+                               retval = -1;
                                break;
+                       }
                }
        }
+       return retval;
 }
 
 errcode_t quota_write_inode(struct f2fs_sb_info *sbi, enum quota_type qtype)
@@ -83,7 +87,7 @@ errcode_t quota_write_inode(struct f2fs_sb_info *sbi, enum 
quota_type qtype)
                if (retval) {
                        log_debug("Cannot initialize io on quotafile");
                } else {
-                       write_dquots(dict, h);
+                       retval = write_dquots(dict, h);
                        quota_file_close(sbi, h, 1);
                }
        }
-- 
2.18.0.rc1



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to