2013-06-05 21:29:13

by Alexey Khoroshilov

[permalink] [raw]
Subject: [PATCH] GFS2: fix error propagation in init_threads()

If kthread_run() fails, init_threads() returns
IS_ERR(p) instead of PTR_ERR(p).

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <[email protected]>
---
fs/gfs2/ops_fstype.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 60ede2a..0262c19 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -916,16 +916,16 @@ static int init_threads(struct gfs2_sbd *sdp, int undo)
goto fail_quotad;

p = kthread_run(gfs2_logd, sdp, "gfs2_logd");
- error = IS_ERR(p);
- if (error) {
+ if (IS_ERR(p)) {
+ error = PTR_ERR(p);
fs_err(sdp, "can't start logd thread: %d\n", error);
return error;
}
sdp->sd_logd_process = p;

p = kthread_run(gfs2_quotad, sdp, "gfs2_quotad");
- error = IS_ERR(p);
- if (error) {
+ if (IS_ERR(p)) {
+ error = PTR_ERR(p);
fs_err(sdp, "can't start quotad thread: %d\n", error);
goto fail;
}
--
1.8.1.2


2013-06-06 09:24:22

by Steven Whitehouse

[permalink] [raw]
Subject: Re: [PATCH] GFS2: fix error propagation in init_threads()

Hi,

Now in the -nmw tree. Thanks,

Steve.

On Thu, 2013-06-06 at 01:29 +0400, Alexey Khoroshilov wrote:
> If kthread_run() fails, init_threads() returns
> IS_ERR(p) instead of PTR_ERR(p).
>
> Found by Linux Driver Verification project (linuxtesting.org).
>
> Signed-off-by: Alexey Khoroshilov <[email protected]>
> ---
> fs/gfs2/ops_fstype.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
> index 60ede2a..0262c19 100644
> --- a/fs/gfs2/ops_fstype.c
> +++ b/fs/gfs2/ops_fstype.c
> @@ -916,16 +916,16 @@ static int init_threads(struct gfs2_sbd *sdp, int undo)
> goto fail_quotad;
>
> p = kthread_run(gfs2_logd, sdp, "gfs2_logd");
> - error = IS_ERR(p);
> - if (error) {
> + if (IS_ERR(p)) {
> + error = PTR_ERR(p);
> fs_err(sdp, "can't start logd thread: %d\n", error);
> return error;
> }
> sdp->sd_logd_process = p;
>
> p = kthread_run(gfs2_quotad, sdp, "gfs2_quotad");
> - error = IS_ERR(p);
> - if (error) {
> + if (IS_ERR(p)) {
> + error = PTR_ERR(p);
> fs_err(sdp, "can't start quotad thread: %d\n", error);
> goto fail;
> }