fuse: use READ_ONCE on congestion_threshold and max_background
authorKirill Tkhai <ktkhai@virtuozzo.com>
Mon, 27 Aug 2018 15:29:29 +0000 (18:29 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Nov 2019 17:47:53 +0000 (18:47 +0100)
[ Upstream commit 2a23f2b8adbe4bd584f936f7ac17a99750eed9d7 ]

Since they are of unsigned int type, it's allowed to read them
unlocked during reporting to userspace. Let's underline this fact
with READ_ONCE() macroses.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/fuse/control.c

index 0b69465..acc3581 100644 (file)
@@ -107,7 +107,7 @@ static ssize_t fuse_conn_max_background_read(struct file *file,
        if (!fc)
                return 0;
 
-       val = fc->max_background;
+       val = READ_ONCE(fc->max_background);
        fuse_conn_put(fc);
 
        return fuse_conn_limit_read(file, buf, len, ppos, val);
@@ -144,7 +144,7 @@ static ssize_t fuse_conn_congestion_threshold_read(struct file *file,
        if (!fc)
                return 0;
 
-       val = fc->congestion_threshold;
+       val = READ_ONCE(fc->congestion_threshold);
        fuse_conn_put(fc);
 
        return fuse_conn_limit_read(file, buf, len, ppos, val);