[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202210050646.UzybRRu8-lkp@intel.com>
Date: Wed, 5 Oct 2022 06:27:04 +0800
From: kernel test robot <lkp@...el.com>
To: Zhou jie <zhoujie@...china.com>, jlayton@...nel.org,
xiubli@...hat.com, idryomov@...il.com
Cc: kbuild-all@...ts.01.org, ceph-devel@...r.kernel.org,
linux-kernel@...r.kernel.org, zhoujie@...china.com
Subject: Re: [PATCH] fs/ceph:Modify the return value to void
Hi Zhou,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on ceph-client/for-linus]
[also build test ERROR on linus/master v6.0 next-20221004]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Zhou-jie/fs-ceph-Modify-the-return-value-to-void/20220927-165857
base: https://github.com/ceph/ceph-client.git for-linus
config: riscv-allyesconfig
compiler: riscv64-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/6c7163052ce6f51c217c650bc5592b7ef50b2280
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Zhou-jie/fs-ceph-Modify-the-return-value-to-void/20220927-165857
git checkout 6c7163052ce6f51c217c650bc5592b7ef50b2280
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
All errors (new ones prefixed by >>):
fs/ceph/debugfs.c: In function 'caps_show':
>> fs/ceph/debugfs.c:281:52: error: passing argument 2 of 'ceph_iterate_session_caps' from incompatible pointer type [-Werror=incompatible-pointer-types]
281 | ceph_iterate_session_caps(session, caps_show_cb, s);
| ^~~~~~~~~~~~
| |
| void (*)(struct inode *, struct ceph_cap *, void *)
In file included from fs/ceph/debugfs.c:22:
fs/ceph/mds_client.h:540:44: note: expected 'int (*)(struct inode *, struct ceph_cap *, void *)' but argument is of type 'void (*)(struct inode *, struct ceph_cap *, void *)'
540 | int (*cb)(struct inode *,
| ~~~~~~^~~~~~~~~~~~~~~~~~~
541 | struct ceph_cap *, void *),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/debugfs.h:16,
from fs/ceph/debugfs.c:8:
fs/ceph/debugfs.c: In function 'mdsmap_open':
>> fs/ceph/debugfs.c:349:23: error: passing argument 2 of 'single_open' from incompatible pointer type [-Werror=incompatible-pointer-types]
349 | DEFINE_SHOW_ATTRIBUTE(mdsmap);
| ^~~~~~
| |
| void (*)(struct seq_file *, void *)
include/linux/seq_file.h:199:34: note: in definition of macro 'DEFINE_SHOW_ATTRIBUTE'
199 | return single_open(file, __name ## _show, inode->i_private); \
| ^~~~~~
include/linux/seq_file.h:166:32: note: expected 'int (*)(struct seq_file *, void *)' but argument is of type 'void (*)(struct seq_file *, void *)'
166 | int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/ceph/debugfs.c: In function 'mdsc_open':
fs/ceph/debugfs.c:350:23: error: passing argument 2 of 'single_open' from incompatible pointer type [-Werror=incompatible-pointer-types]
350 | DEFINE_SHOW_ATTRIBUTE(mdsc);
| ^~~~
| |
| void (*)(struct seq_file *, void *)
include/linux/seq_file.h:199:34: note: in definition of macro 'DEFINE_SHOW_ATTRIBUTE'
199 | return single_open(file, __name ## _show, inode->i_private); \
| ^~~~~~
include/linux/seq_file.h:166:32: note: expected 'int (*)(struct seq_file *, void *)' but argument is of type 'void (*)(struct seq_file *, void *)'
166 | int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/ceph/debugfs.c: In function 'caps_open':
fs/ceph/debugfs.c:351:23: error: passing argument 2 of 'single_open' from incompatible pointer type [-Werror=incompatible-pointer-types]
351 | DEFINE_SHOW_ATTRIBUTE(caps);
| ^~~~
| |
| void (*)(struct seq_file *, void *)
include/linux/seq_file.h:199:34: note: in definition of macro 'DEFINE_SHOW_ATTRIBUTE'
199 | return single_open(file, __name ## _show, inode->i_private); \
| ^~~~~~
include/linux/seq_file.h:166:32: note: expected 'int (*)(struct seq_file *, void *)' but argument is of type 'void (*)(struct seq_file *, void *)'
166 | int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/ceph/debugfs.c: In function 'mds_sessions_open':
fs/ceph/debugfs.c:352:23: error: passing argument 2 of 'single_open' from incompatible pointer type [-Werror=incompatible-pointer-types]
352 | DEFINE_SHOW_ATTRIBUTE(mds_sessions);
| ^~~~~~~~~~~~
| |
| void (*)(struct seq_file *, void *)
include/linux/seq_file.h:199:34: note: in definition of macro 'DEFINE_SHOW_ATTRIBUTE'
199 | return single_open(file, __name ## _show, inode->i_private); \
| ^~~~~~
include/linux/seq_file.h:166:32: note: expected 'int (*)(struct seq_file *, void *)' but argument is of type 'void (*)(struct seq_file *, void *)'
166 | int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/ceph/debugfs.c: In function 'status_open':
fs/ceph/debugfs.c:353:23: error: passing argument 2 of 'single_open' from incompatible pointer type [-Werror=incompatible-pointer-types]
353 | DEFINE_SHOW_ATTRIBUTE(status);
| ^~~~~~
| |
| void (*)(struct seq_file *, void *)
include/linux/seq_file.h:199:34: note: in definition of macro 'DEFINE_SHOW_ATTRIBUTE'
199 | return single_open(file, __name ## _show, inode->i_private); \
| ^~~~~~
include/linux/seq_file.h:166:32: note: expected 'int (*)(struct seq_file *, void *)' but argument is of type 'void (*)(struct seq_file *, void *)'
166 | int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/ceph/debugfs.c: In function 'metrics_file_open':
fs/ceph/debugfs.c:354:23: error: passing argument 2 of 'single_open' from incompatible pointer type [-Werror=incompatible-pointer-types]
354 | DEFINE_SHOW_ATTRIBUTE(metrics_file);
| ^~~~~~~~~~~~
| |
| void (*)(struct seq_file *, void *)
include/linux/seq_file.h:199:34: note: in definition of macro 'DEFINE_SHOW_ATTRIBUTE'
199 | return single_open(file, __name ## _show, inode->i_private); \
| ^~~~~~
include/linux/seq_file.h:166:32: note: expected 'int (*)(struct seq_file *, void *)' but argument is of type 'void (*)(struct seq_file *, void *)'
166 | int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/ceph/debugfs.c: In function 'metrics_latency_open':
fs/ceph/debugfs.c:355:23: error: passing argument 2 of 'single_open' from incompatible pointer type [-Werror=incompatible-pointer-types]
355 | DEFINE_SHOW_ATTRIBUTE(metrics_latency);
| ^~~~~~~~~~~~~~~
| |
| void (*)(struct seq_file *, void *)
include/linux/seq_file.h:199:34: note: in definition of macro 'DEFINE_SHOW_ATTRIBUTE'
199 | return single_open(file, __name ## _show, inode->i_private); \
| ^~~~~~
include/linux/seq_file.h:166:32: note: expected 'int (*)(struct seq_file *, void *)' but argument is of type 'void (*)(struct seq_file *, void *)'
166 | int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/ceph/debugfs.c: In function 'metrics_size_open':
fs/ceph/debugfs.c:356:23: error: passing argument 2 of 'single_open' from incompatible pointer type [-Werror=incompatible-pointer-types]
356 | DEFINE_SHOW_ATTRIBUTE(metrics_size);
| ^~~~~~~~~~~~
| |
| void (*)(struct seq_file *, void *)
include/linux/seq_file.h:199:34: note: in definition of macro 'DEFINE_SHOW_ATTRIBUTE'
199 | return single_open(file, __name ## _show, inode->i_private); \
| ^~~~~~
include/linux/seq_file.h:166:32: note: expected 'int (*)(struct seq_file *, void *)' but argument is of type 'void (*)(struct seq_file *, void *)'
166 | int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/ceph/debugfs.c: In function 'metrics_caps_open':
fs/ceph/debugfs.c:357:23: error: passing argument 2 of 'single_open' from incompatible pointer type [-Werror=incompatible-pointer-types]
357 | DEFINE_SHOW_ATTRIBUTE(metrics_caps);
| ^~~~~~~~~~~~
| |
| void (*)(struct seq_file *, void *)
include/linux/seq_file.h:199:34: note: in definition of macro 'DEFINE_SHOW_ATTRIBUTE'
199 | return single_open(file, __name ## _show, inode->i_private); \
| ^~~~~~
include/linux/seq_file.h:166:32: note: expected 'int (*)(struct seq_file *, void *)' but argument is of type 'void (*)(struct seq_file *, void *)'
166 | int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/compat.h:17,
from arch/riscv/include/asm/elf.h:12,
from include/linux/elf.h:6,
from include/linux/module.h:19,
from include/linux/device/driver.h:21,
from include/linux/device.h:32,
from fs/ceph/debugfs.c:4:
fs/ceph/debugfs.c: In function 'congestion_kb_fops_open':
>> fs/ceph/debugfs.c:377:45: error: passing argument 3 of 'simple_attr_open' from incompatible pointer type [-Werror=incompatible-pointer-types]
377 | DEFINE_SIMPLE_ATTRIBUTE(congestion_kb_fops, congestion_kb_get,
| ^~~~~~~~~~~~~~~~~
| |
| void (*)(void *, u64 *) {aka void (*)(void *, long long unsigned int *)}
include/linux/fs.h:3352:46: note: in definition of macro 'DEFINE_SIMPLE_ATTRIBUTE'
3352 | return simple_attr_open(inode, file, __get, __set, __fmt); \
| ^~~~~
include/linux/fs.h:3370:28: note: expected 'int (*)(void *, u64 *)' {aka 'int (*)(void *, long long unsigned int *)'} but argument is of type 'void (*)(void *, u64 *)' {aka 'void (*)(void *, long long unsigned int *)'}
3370 | int (*get)(void *, u64 *), int (*set)(void *, u64),
| ~~~~~~^~~~~~~~~~~~~~~~~~~
fs/ceph/debugfs.c:378:25: error: passing argument 4 of 'simple_attr_open' from incompatible pointer type [-Werror=incompatible-pointer-types]
378 | congestion_kb_set, "%llu\n");
| ^~~~~~~~~~~~~~~~~
| |
| void (*)(void *, u64) {aka void (*)(void *, long long unsigned int)}
include/linux/fs.h:3352:53: note: in definition of macro 'DEFINE_SIMPLE_ATTRIBUTE'
3352 | return simple_attr_open(inode, file, __get, __set, __fmt); \
| ^~~~~
include/linux/fs.h:3370:55: note: expected 'int (*)(void *, u64)' {aka 'int (*)(void *, long long unsigned int)'} but argument is of type 'void (*)(void *, u64)' {aka 'void (*)(void *, long long unsigned int)'}
3370 | int (*get)(void *, u64 *), int (*set)(void *, u64),
| ~~~~~~^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/ceph_iterate_session_caps +281 fs/ceph/debugfs.c
ff4a80bf2d3f80 Jeff Layton 2019-04-24 254
6c7163052ce6f5 Zhou jie 2022-09-27 255 static void caps_show(struct seq_file *s, void *p)
76aa844d5b2fb8 Sage Weil 2009-10-06 256 {
3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 257 struct ceph_fs_client *fsc = s->private;
ff4a80bf2d3f80 Jeff Layton 2019-04-24 258 struct ceph_mds_client *mdsc = fsc->mdsc;
ff4a80bf2d3f80 Jeff Layton 2019-04-24 259 int total, avail, used, reserved, min, i;
3a3430affce5de Jeff Layton 2019-11-20 260 struct cap_wait *cw;
76aa844d5b2fb8 Sage Weil 2009-10-06 261
3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 262 ceph_reservation_status(fsc, &total, &avail, &used, &reserved, &min);
76aa844d5b2fb8 Sage Weil 2009-10-06 263 seq_printf(s, "total\t\t%d\n"
76aa844d5b2fb8 Sage Weil 2009-10-06 264 "avail\t\t%d\n"
76aa844d5b2fb8 Sage Weil 2009-10-06 265 "used\t\t%d\n"
85ccce43a3fc15 Sage Weil 2010-02-17 266 "reserved\t%d\n"
ff4a80bf2d3f80 Jeff Layton 2019-04-24 267 "min\t\t%d\n\n",
85ccce43a3fc15 Sage Weil 2010-02-17 268 total, avail, used, reserved, min);
3a8ebe0b8b616c Yanhu Cao 2020-08-24 269 seq_printf(s, "ino mds issued implemented\n");
3a8ebe0b8b616c Yanhu Cao 2020-08-24 270 seq_printf(s, "--------------------------------------------------\n");
ff4a80bf2d3f80 Jeff Layton 2019-04-24 271
ff4a80bf2d3f80 Jeff Layton 2019-04-24 272 mutex_lock(&mdsc->mutex);
ff4a80bf2d3f80 Jeff Layton 2019-04-24 273 for (i = 0; i < mdsc->max_sessions; i++) {
ff4a80bf2d3f80 Jeff Layton 2019-04-24 274 struct ceph_mds_session *session;
ff4a80bf2d3f80 Jeff Layton 2019-04-24 275
ff4a80bf2d3f80 Jeff Layton 2019-04-24 276 session = __ceph_lookup_mds_session(mdsc, i);
ff4a80bf2d3f80 Jeff Layton 2019-04-24 277 if (!session)
ff4a80bf2d3f80 Jeff Layton 2019-04-24 278 continue;
ff4a80bf2d3f80 Jeff Layton 2019-04-24 279 mutex_unlock(&mdsc->mutex);
ff4a80bf2d3f80 Jeff Layton 2019-04-24 280 mutex_lock(&session->s_mutex);
ff4a80bf2d3f80 Jeff Layton 2019-04-24 @281 ceph_iterate_session_caps(session, caps_show_cb, s);
ff4a80bf2d3f80 Jeff Layton 2019-04-24 282 mutex_unlock(&session->s_mutex);
ff4a80bf2d3f80 Jeff Layton 2019-04-24 283 ceph_put_mds_session(session);
ff4a80bf2d3f80 Jeff Layton 2019-04-24 284 mutex_lock(&mdsc->mutex);
ff4a80bf2d3f80 Jeff Layton 2019-04-24 285 }
ff4a80bf2d3f80 Jeff Layton 2019-04-24 286 mutex_unlock(&mdsc->mutex);
ff4a80bf2d3f80 Jeff Layton 2019-04-24 287
3a3430affce5de Jeff Layton 2019-11-20 288 seq_printf(s, "\n\nWaiters:\n--------\n");
3a3430affce5de Jeff Layton 2019-11-20 289 seq_printf(s, "tgid ino need want\n");
3a3430affce5de Jeff Layton 2019-11-20 290 seq_printf(s, "-----------------------------------------------------\n");
3a3430affce5de Jeff Layton 2019-11-20 291
3a3430affce5de Jeff Layton 2019-11-20 292 spin_lock(&mdsc->caps_list_lock);
3a3430affce5de Jeff Layton 2019-11-20 293 list_for_each_entry(cw, &mdsc->cap_wait_list, list) {
ebce3eb2f7ef9f Jeff Layton 2020-08-18 294 seq_printf(s, "%-13d0x%-17llx%-17s%-17s\n", cw->tgid, cw->ino,
3a3430affce5de Jeff Layton 2019-11-20 295 ceph_cap_string(cw->need),
3a3430affce5de Jeff Layton 2019-11-20 296 ceph_cap_string(cw->want));
3a3430affce5de Jeff Layton 2019-11-20 297 }
3a3430affce5de Jeff Layton 2019-11-20 298 spin_unlock(&mdsc->caps_list_lock);
3a3430affce5de Jeff Layton 2019-11-20 299
76aa844d5b2fb8 Sage Weil 2009-10-06 300 }
76aa844d5b2fb8 Sage Weil 2009-10-06 301
6c7163052ce6f5 Zhou jie 2022-09-27 302 static void mds_sessions_show(struct seq_file *s, void *ptr)
14ed97033dac4c John Spray 2014-09-12 303 {
14ed97033dac4c John Spray 2014-09-12 304 struct ceph_fs_client *fsc = s->private;
14ed97033dac4c John Spray 2014-09-12 305 struct ceph_mds_client *mdsc = fsc->mdsc;
14ed97033dac4c John Spray 2014-09-12 306 struct ceph_auth_client *ac = fsc->client->monc.auth;
14ed97033dac4c John Spray 2014-09-12 307 struct ceph_options *opt = fsc->client->options;
2c81ef286c42c5 Colin Ian King 2020-07-23 308 int mds;
14ed97033dac4c John Spray 2014-09-12 309
14ed97033dac4c John Spray 2014-09-12 310 mutex_lock(&mdsc->mutex);
14ed97033dac4c John Spray 2014-09-12 311
14ed97033dac4c John Spray 2014-09-12 312 /* The 'num' portion of an 'entity name' */
14ed97033dac4c John Spray 2014-09-12 313 seq_printf(s, "global_id %llu\n", ac->global_id);
14ed97033dac4c John Spray 2014-09-12 314
14ed97033dac4c John Spray 2014-09-12 315 /* The -o name mount argument */
14ed97033dac4c John Spray 2014-09-12 316 seq_printf(s, "name \"%s\"\n", opt->name ? opt->name : "");
14ed97033dac4c John Spray 2014-09-12 317
14ed97033dac4c John Spray 2014-09-12 318 /* The list of MDS session rank+state */
14ed97033dac4c John Spray 2014-09-12 319 for (mds = 0; mds < mdsc->max_sessions; mds++) {
14ed97033dac4c John Spray 2014-09-12 320 struct ceph_mds_session *session =
14ed97033dac4c John Spray 2014-09-12 321 __ceph_lookup_mds_session(mdsc, mds);
14ed97033dac4c John Spray 2014-09-12 322 if (!session) {
14ed97033dac4c John Spray 2014-09-12 323 continue;
14ed97033dac4c John Spray 2014-09-12 324 }
14ed97033dac4c John Spray 2014-09-12 325 mutex_unlock(&mdsc->mutex);
14ed97033dac4c John Spray 2014-09-12 326 seq_printf(s, "mds.%d %s\n",
14ed97033dac4c John Spray 2014-09-12 327 session->s_mds,
14ed97033dac4c John Spray 2014-09-12 328 ceph_session_state_name(session->s_state));
14ed97033dac4c John Spray 2014-09-12 329
14ed97033dac4c John Spray 2014-09-12 330 ceph_put_mds_session(session);
14ed97033dac4c John Spray 2014-09-12 331 mutex_lock(&mdsc->mutex);
14ed97033dac4c John Spray 2014-09-12 332 }
14ed97033dac4c John Spray 2014-09-12 333 mutex_unlock(&mdsc->mutex);
14ed97033dac4c John Spray 2014-09-12 334
14ed97033dac4c John Spray 2014-09-12 335 }
14ed97033dac4c John Spray 2014-09-12 336
6c7163052ce6f5 Zhou jie 2022-09-27 337 static void status_show(struct seq_file *s, void *p)
247b1f19dbeb48 Xiubo Li 2020-11-11 338 {
247b1f19dbeb48 Xiubo Li 2020-11-11 339 struct ceph_fs_client *fsc = s->private;
247b1f19dbeb48 Xiubo Li 2020-11-11 340 struct ceph_entity_inst *inst = &fsc->client->msgr.inst;
247b1f19dbeb48 Xiubo Li 2020-11-11 341 struct ceph_entity_addr *client_addr = ceph_client_addr(fsc->client);
247b1f19dbeb48 Xiubo Li 2020-11-11 342
247b1f19dbeb48 Xiubo Li 2020-11-11 343 seq_printf(s, "instance: %s.%lld %s/%u\n", ENTITY_NAME(inst->name),
247b1f19dbeb48 Xiubo Li 2020-11-11 344 ceph_pr_addr(client_addr), le32_to_cpu(client_addr->nonce));
247b1f19dbeb48 Xiubo Li 2020-11-11 345 seq_printf(s, "blocklisted: %s\n", fsc->blocklisted ? "true" : "false");
247b1f19dbeb48 Xiubo Li 2020-11-11 346
247b1f19dbeb48 Xiubo Li 2020-11-11 347 }
247b1f19dbeb48 Xiubo Li 2020-11-11 348
072eaf3c0f0fd2 Ilya Dryomov 2020-01-28 @349 DEFINE_SHOW_ATTRIBUTE(mdsmap);
072eaf3c0f0fd2 Ilya Dryomov 2020-01-28 350 DEFINE_SHOW_ATTRIBUTE(mdsc);
072eaf3c0f0fd2 Ilya Dryomov 2020-01-28 351 DEFINE_SHOW_ATTRIBUTE(caps);
072eaf3c0f0fd2 Ilya Dryomov 2020-01-28 352 DEFINE_SHOW_ATTRIBUTE(mds_sessions);
247b1f19dbeb48 Xiubo Li 2020-11-11 353 DEFINE_SHOW_ATTRIBUTE(status);
cbed4ff76bbb80 Luís Henriques 2021-10-27 354 DEFINE_SHOW_ATTRIBUTE(metrics_file);
cbed4ff76bbb80 Luís Henriques 2021-10-27 355 DEFINE_SHOW_ATTRIBUTE(metrics_latency);
cbed4ff76bbb80 Luís Henriques 2021-10-27 356 DEFINE_SHOW_ATTRIBUTE(metrics_size);
cbed4ff76bbb80 Luís Henriques 2021-10-27 357 DEFINE_SHOW_ATTRIBUTE(metrics_caps);
3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 358
76aa844d5b2fb8 Sage Weil 2009-10-06 359
3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 360 /*
3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 361 * debugfs
3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 362 */
6c7163052ce6f5 Zhou jie 2022-09-27 363 static void congestion_kb_set(void *data, u64 val)
2baba25019ec56 Yehuda Sadeh 2009-12-18 364 {
3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 365 struct ceph_fs_client *fsc = (struct ceph_fs_client *)data;
2baba25019ec56 Yehuda Sadeh 2009-12-18 366
3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 367 fsc->mount_options->congestion_kb = (int)val;
2baba25019ec56 Yehuda Sadeh 2009-12-18 368 }
2baba25019ec56 Yehuda Sadeh 2009-12-18 369
6c7163052ce6f5 Zhou jie 2022-09-27 370 static void congestion_kb_get(void *data, u64 *val)
2baba25019ec56 Yehuda Sadeh 2009-12-18 371 {
3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 372 struct ceph_fs_client *fsc = (struct ceph_fs_client *)data;
2baba25019ec56 Yehuda Sadeh 2009-12-18 373
3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 374 *val = (u64)fsc->mount_options->congestion_kb;
2baba25019ec56 Yehuda Sadeh 2009-12-18 375 }
2baba25019ec56 Yehuda Sadeh 2009-12-18 376
2baba25019ec56 Yehuda Sadeh 2009-12-18 @377 DEFINE_SIMPLE_ATTRIBUTE(congestion_kb_fops, congestion_kb_get,
2baba25019ec56 Yehuda Sadeh 2009-12-18 378 congestion_kb_set, "%llu\n");
2baba25019ec56 Yehuda Sadeh 2009-12-18 379
76aa844d5b2fb8 Sage Weil 2009-10-06 380
--
0-DAY CI Kernel Test Service
https://01.org/lkp
View attachment "config" of type "text/plain" (318546 bytes)
Powered by blists - more mailing lists