Message ID | 1640226246-32691-1-git-send-email-wangqing@vivo.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | block: return specific error when pointer is NULL | expand |
On Wed, Dec 22, 2021 at 06:24:03PM -0800, Qing Wang wrote: > From: Wang Qing <wangqing@vivo.com> > > loop_attr_backing_file_show() better return specific error than 0 > when pointer is NULL Well, let's turn this into something that is not butt ugly then: diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 7f4ea06534c2d..b9ee0a165b75e 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -666,15 +666,15 @@ static ssize_t loop_attr_backing_file_show(struct loop_device *lo, char *buf) p = file_path(lo->lo_backing_file, buf, PAGE_SIZE - 1); spin_unlock_irq(&lo->lo_lock); - if (IS_ERR_OR_NULL(p)) - ret = PTR_ERR(p); - else { - ret = strlen(p); - memmove(buf, p, ret); - buf[ret++] = '\n'; - buf[ret] = 0; - } - + if (!p) + return -ENOENT; + if (IS_ERR(p)) + return PTR_ERR(p); + + ret = strlen(p); + memmove(buf, p, ret); + buf[ret++] = '\n'; + buf[ret] = 0; return ret; }
diff --git a/drivers/block/loop.c b/drivers/block/loop.c index e52a8a5..860a5b6 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -667,7 +667,7 @@ static ssize_t loop_attr_backing_file_show(struct loop_device *lo, char *buf) spin_unlock_irq(&lo->lo_lock); if (IS_ERR_OR_NULL(p)) - ret = PTR_ERR(p); + ret = p ? PTR_ERR(p) : -ENOENT; else { ret = strlen(p); memmove(buf, p, ret);