From: kbuild test robot <lkp@intel.com>
To: NeilBrown <neilb@suse.com>
Cc: kbuild-all@01.org,
Trond Myklebust <trond.myklebust@primarydata.com>,
Anna Schumaker <anna.schumaker@netapp.com>,
linux-nfs@vger.kernel.org
Subject: Re: [PATCH 19/23] NFS/NFSD/SUNRPC: replace generic creds with 'struct cred'.
Date: Mon, 19 Feb 2018 22:58:29 +0800 [thread overview]
Message-ID: <201802192252.Y6fdV4Fk%fengguang.wu@intel.com> (raw)
In-Reply-To: <151901654943.17421.16135174786512989263.stgit@noble>
Hi NeilBrown,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on nfs/linux-next]
[also build test WARNING on v4.16-rc2 next-20180219]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/NeilBrown/Remove-generic-rpc-credentials-and-associated-changed-V3/20180219-190836
base: git://git.linux-nfs.org/projects/trondmy/linux-nfs.git linux-next
reproduce:
# apt-get install sparse
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
>> fs/nfs/flexfilelayout/flexfilelayout.c:517:40: sparse: incorrect type in initializer (different address spaces) @@ expected struct cred const @@ got cred const @@
fs/nfs/flexfilelayout/flexfilelayout.c:517:40: expected struct cred const
fs/nfs/flexfilelayout/flexfilelayout.c:517:40: got struct cred const Documentation Kbuild Kconfig Makefile certs drivers firmware fs include samples scripts sound tools cred
>> fs/nfs/flexfilelayout/flexfilelayout.c:517:38: sparse: incorrect type in assignment (different address spaces) @@ expected struct cred const Documentation Kbuild Kconfig Makefile certs drivers firmware fs include samples scripts sound tools cred @@ got struct cred conststruct cred const Documentation Kbuild Kconfig Makefile certs drivers firmware fs include samples scripts sound tools cred @@
fs/nfs/flexfilelayout/flexfilelayout.c:517:38: expected struct cred const Documentation Kbuild Kconfig Makefile certs drivers firmware fs include samples scripts sound tools cred
fs/nfs/flexfilelayout/flexfilelayout.c:517:38: got struct cred const __ret
fs/nfs/flexfilelayout/flexfilelayout.c:520:40: sparse: incorrect type in initializer (different address spaces) @@ expected struct cred const @@ got cred const @@
fs/nfs/flexfilelayout/flexfilelayout.c:520:40: expected struct cred const
fs/nfs/flexfilelayout/flexfilelayout.c:520:40: got struct cred const Documentation Kbuild Kconfig Makefile certs drivers firmware fs include samples scripts sound tools cred
fs/nfs/flexfilelayout/flexfilelayout.c:520:38: sparse: incorrect type in assignment (different address spaces) @@ expected struct cred const Documentation Kbuild Kconfig Makefile certs drivers firmware fs include samples scripts sound tools cred @@ got struct cred conststruct cred const Documentation Kbuild Kconfig Makefile certs drivers firmware fs include samples scripts sound tools cred @@
fs/nfs/flexfilelayout/flexfilelayout.c:520:38: expected struct cred const Documentation Kbuild Kconfig Makefile certs drivers firmware fs include samples scripts sound tools cred
fs/nfs/flexfilelayout/flexfilelayout.c:520:38: got struct cred const __ret
vim +517 fs/nfs/flexfilelayout/flexfilelayout.c
d67ae825 Tom Haynes 2014-12-11 360
d67ae825 Tom Haynes 2014-12-11 361 static struct pnfs_layout_segment *
d67ae825 Tom Haynes 2014-12-11 362 ff_layout_alloc_lseg(struct pnfs_layout_hdr *lh,
d67ae825 Tom Haynes 2014-12-11 363 struct nfs4_layoutget_res *lgr,
d67ae825 Tom Haynes 2014-12-11 364 gfp_t gfp_flags)
d67ae825 Tom Haynes 2014-12-11 365 {
d67ae825 Tom Haynes 2014-12-11 366 struct pnfs_layout_segment *ret;
d67ae825 Tom Haynes 2014-12-11 367 struct nfs4_ff_layout_segment *fls = NULL;
d67ae825 Tom Haynes 2014-12-11 368 struct xdr_stream stream;
d67ae825 Tom Haynes 2014-12-11 369 struct xdr_buf buf;
d67ae825 Tom Haynes 2014-12-11 370 struct page *scratch;
d67ae825 Tom Haynes 2014-12-11 371 u64 stripe_unit;
d67ae825 Tom Haynes 2014-12-11 372 u32 mirror_array_cnt;
d67ae825 Tom Haynes 2014-12-11 373 __be32 *p;
d67ae825 Tom Haynes 2014-12-11 374 int i, rc;
d67ae825 Tom Haynes 2014-12-11 375
d67ae825 Tom Haynes 2014-12-11 376 dprintk("--> %s\n", __func__);
d67ae825 Tom Haynes 2014-12-11 377 scratch = alloc_page(gfp_flags);
d67ae825 Tom Haynes 2014-12-11 378 if (!scratch)
d67ae825 Tom Haynes 2014-12-11 379 return ERR_PTR(-ENOMEM);
d67ae825 Tom Haynes 2014-12-11 380
d67ae825 Tom Haynes 2014-12-11 381 xdr_init_decode_pages(&stream, &buf, lgr->layoutp->pages,
d67ae825 Tom Haynes 2014-12-11 382 lgr->layoutp->len);
d67ae825 Tom Haynes 2014-12-11 383 xdr_set_scratch_buffer(&stream, page_address(scratch), PAGE_SIZE);
d67ae825 Tom Haynes 2014-12-11 384
d67ae825 Tom Haynes 2014-12-11 385 /* stripe unit and mirror_array_cnt */
d67ae825 Tom Haynes 2014-12-11 386 rc = -EIO;
d67ae825 Tom Haynes 2014-12-11 387 p = xdr_inline_decode(&stream, 8 + 4);
d67ae825 Tom Haynes 2014-12-11 388 if (!p)
d67ae825 Tom Haynes 2014-12-11 389 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 390
d67ae825 Tom Haynes 2014-12-11 391 p = xdr_decode_hyper(p, &stripe_unit);
d67ae825 Tom Haynes 2014-12-11 392 mirror_array_cnt = be32_to_cpup(p++);
d67ae825 Tom Haynes 2014-12-11 393 dprintk("%s: stripe_unit=%llu mirror_array_cnt=%u\n", __func__,
d67ae825 Tom Haynes 2014-12-11 394 stripe_unit, mirror_array_cnt);
d67ae825 Tom Haynes 2014-12-11 395
d67ae825 Tom Haynes 2014-12-11 396 if (mirror_array_cnt > NFS4_FLEXFILE_LAYOUT_MAX_MIRROR_CNT ||
d67ae825 Tom Haynes 2014-12-11 397 mirror_array_cnt == 0)
d67ae825 Tom Haynes 2014-12-11 398 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 399
d67ae825 Tom Haynes 2014-12-11 400 rc = -ENOMEM;
d67ae825 Tom Haynes 2014-12-11 401 fls = kzalloc(sizeof(*fls), gfp_flags);
d67ae825 Tom Haynes 2014-12-11 402 if (!fls)
d67ae825 Tom Haynes 2014-12-11 403 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 404
d67ae825 Tom Haynes 2014-12-11 405 fls->mirror_array_cnt = mirror_array_cnt;
d67ae825 Tom Haynes 2014-12-11 406 fls->stripe_unit = stripe_unit;
d67ae825 Tom Haynes 2014-12-11 407 fls->mirror_array = kcalloc(fls->mirror_array_cnt,
d67ae825 Tom Haynes 2014-12-11 408 sizeof(fls->mirror_array[0]), gfp_flags);
d67ae825 Tom Haynes 2014-12-11 409 if (fls->mirror_array == NULL)
d67ae825 Tom Haynes 2014-12-11 410 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 411
d67ae825 Tom Haynes 2014-12-11 412 for (i = 0; i < fls->mirror_array_cnt; i++) {
266d12d4 Trond Myklebust 2015-08-24 413 struct nfs4_ff_layout_mirror *mirror;
bbf32642 NeilBrown 2018-02-19 414 struct cred *kcred;
3c189a1f NeilBrown 2018-02-19 415 const struct cred *cred;
df462af3 NeilBrown 2018-02-19 416 kuid_t uid;
df462af3 NeilBrown 2018-02-19 417 kgid_t gid;
90a0be00 Jeff Layton 2016-04-21 418 u32 ds_count, fh_count, id;
d67ae825 Tom Haynes 2014-12-11 419 int j;
d67ae825 Tom Haynes 2014-12-11 420
d67ae825 Tom Haynes 2014-12-11 421 rc = -EIO;
d67ae825 Tom Haynes 2014-12-11 422 p = xdr_inline_decode(&stream, 4);
d67ae825 Tom Haynes 2014-12-11 423 if (!p)
d67ae825 Tom Haynes 2014-12-11 424 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 425 ds_count = be32_to_cpup(p);
d67ae825 Tom Haynes 2014-12-11 426
d67ae825 Tom Haynes 2014-12-11 427 /* FIXME: allow for striping? */
d67ae825 Tom Haynes 2014-12-11 428 if (ds_count != 1)
d67ae825 Tom Haynes 2014-12-11 429 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 430
28a0d72c Trond Myklebust 2015-08-24 431 fls->mirror_array[i] = ff_layout_alloc_mirror(gfp_flags);
d67ae825 Tom Haynes 2014-12-11 432 if (fls->mirror_array[i] == NULL) {
d67ae825 Tom Haynes 2014-12-11 433 rc = -ENOMEM;
d67ae825 Tom Haynes 2014-12-11 434 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 435 }
d67ae825 Tom Haynes 2014-12-11 436
d67ae825 Tom Haynes 2014-12-11 437 fls->mirror_array[i]->ds_count = ds_count;
d67ae825 Tom Haynes 2014-12-11 438
d67ae825 Tom Haynes 2014-12-11 439 /* deviceid */
65990d1a Fred Isaman 2016-09-30 440 rc = decode_deviceid(&stream, &fls->mirror_array[i]->devid);
d67ae825 Tom Haynes 2014-12-11 441 if (rc)
d67ae825 Tom Haynes 2014-12-11 442 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 443
d67ae825 Tom Haynes 2014-12-11 444 /* efficiency */
d67ae825 Tom Haynes 2014-12-11 445 rc = -EIO;
d67ae825 Tom Haynes 2014-12-11 446 p = xdr_inline_decode(&stream, 4);
d67ae825 Tom Haynes 2014-12-11 447 if (!p)
d67ae825 Tom Haynes 2014-12-11 448 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 449 fls->mirror_array[i]->efficiency = be32_to_cpup(p);
d67ae825 Tom Haynes 2014-12-11 450
d67ae825 Tom Haynes 2014-12-11 451 /* stateid */
93b717fd Trond Myklebust 2016-05-16 452 rc = decode_pnfs_stateid(&stream, &fls->mirror_array[i]->stateid);
d67ae825 Tom Haynes 2014-12-11 453 if (rc)
d67ae825 Tom Haynes 2014-12-11 454 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 455
d67ae825 Tom Haynes 2014-12-11 456 /* fh */
662f9a10 Dan Carpenter 2017-05-20 457 rc = -EIO;
d67ae825 Tom Haynes 2014-12-11 458 p = xdr_inline_decode(&stream, 4);
d67ae825 Tom Haynes 2014-12-11 459 if (!p)
d67ae825 Tom Haynes 2014-12-11 460 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 461 fh_count = be32_to_cpup(p);
d67ae825 Tom Haynes 2014-12-11 462
d67ae825 Tom Haynes 2014-12-11 463 fls->mirror_array[i]->fh_versions =
d67ae825 Tom Haynes 2014-12-11 464 kzalloc(fh_count * sizeof(struct nfs_fh),
d67ae825 Tom Haynes 2014-12-11 465 gfp_flags);
d67ae825 Tom Haynes 2014-12-11 466 if (fls->mirror_array[i]->fh_versions == NULL) {
d67ae825 Tom Haynes 2014-12-11 467 rc = -ENOMEM;
d67ae825 Tom Haynes 2014-12-11 468 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 469 }
d67ae825 Tom Haynes 2014-12-11 470
d67ae825 Tom Haynes 2014-12-11 471 for (j = 0; j < fh_count; j++) {
d67ae825 Tom Haynes 2014-12-11 472 rc = decode_nfs_fh(&stream,
d67ae825 Tom Haynes 2014-12-11 473 &fls->mirror_array[i]->fh_versions[j]);
d67ae825 Tom Haynes 2014-12-11 474 if (rc)
d67ae825 Tom Haynes 2014-12-11 475 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 476 }
d67ae825 Tom Haynes 2014-12-11 477
d67ae825 Tom Haynes 2014-12-11 478 fls->mirror_array[i]->fh_versions_cnt = fh_count;
d67ae825 Tom Haynes 2014-12-11 479
d67ae825 Tom Haynes 2014-12-11 480 /* user */
90a0be00 Jeff Layton 2016-04-21 481 rc = decode_name(&stream, &id);
d67ae825 Tom Haynes 2014-12-11 482 if (rc)
d67ae825 Tom Haynes 2014-12-11 483 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 484
df462af3 NeilBrown 2018-02-19 485 uid = make_kuid(&init_user_ns, id);
90a0be00 Jeff Layton 2016-04-21 486
d67ae825 Tom Haynes 2014-12-11 487 /* group */
90a0be00 Jeff Layton 2016-04-21 488 rc = decode_name(&stream, &id);
d67ae825 Tom Haynes 2014-12-11 489 if (rc)
d67ae825 Tom Haynes 2014-12-11 490 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 491
df462af3 NeilBrown 2018-02-19 492 gid = make_kgid(&init_user_ns, id);
90a0be00 Jeff Layton 2016-04-21 493
bbf32642 NeilBrown 2018-02-19 494 if (gfp_flags & __GFP_FS)
bbf32642 NeilBrown 2018-02-19 495 kcred = prepare_kernel_cred(NULL);
bbf32642 NeilBrown 2018-02-19 496 else {
bbf32642 NeilBrown 2018-02-19 497 unsigned int nofs_flags = memalloc_nofs_save();
bbf32642 NeilBrown 2018-02-19 498 kcred = prepare_kernel_cred(NULL);
bbf32642 NeilBrown 2018-02-19 499 memalloc_nofs_restore(nofs_flags);
bbf32642 NeilBrown 2018-02-19 500 }
bbf32642 NeilBrown 2018-02-19 501 rc = -ENOMEM;
bbf32642 NeilBrown 2018-02-19 502 if (!kcred)
bbf32642 NeilBrown 2018-02-19 503 goto out_err_free;
df462af3 NeilBrown 2018-02-19 504 kcred->fsuid = uid;
df462af3 NeilBrown 2018-02-19 505 kcred->fsgid = gid;
3c189a1f NeilBrown 2018-02-19 506 cred = kcred;
90a0be00 Jeff Layton 2016-04-21 507
3064b686 Jeff Layton 2016-04-21 508 if (lgr->range.iomode == IOMODE_READ)
3064b686 Jeff Layton 2016-04-21 509 rcu_assign_pointer(fls->mirror_array[i]->ro_cred, cred);
3064b686 Jeff Layton 2016-04-21 510 else
3064b686 Jeff Layton 2016-04-21 511 rcu_assign_pointer(fls->mirror_array[i]->rw_cred, cred);
90a0be00 Jeff Layton 2016-04-21 512
266d12d4 Trond Myklebust 2015-08-24 513 mirror = ff_layout_add_mirror(lh, fls->mirror_array[i]);
266d12d4 Trond Myklebust 2015-08-24 514 if (mirror != fls->mirror_array[i]) {
90a0be00 Jeff Layton 2016-04-21 515 /* swap cred ptrs so free_mirror will clean up old */
3064b686 Jeff Layton 2016-04-21 516 if (lgr->range.iomode == IOMODE_READ) {
3064b686 Jeff Layton 2016-04-21 @517 cred = xchg(&mirror->ro_cred, cred);
3064b686 Jeff Layton 2016-04-21 518 rcu_assign_pointer(fls->mirror_array[i]->ro_cred, cred);
3064b686 Jeff Layton 2016-04-21 519 } else {
3064b686 Jeff Layton 2016-04-21 520 cred = xchg(&mirror->rw_cred, cred);
3064b686 Jeff Layton 2016-04-21 521 rcu_assign_pointer(fls->mirror_array[i]->rw_cred, cred);
3064b686 Jeff Layton 2016-04-21 522 }
266d12d4 Trond Myklebust 2015-08-24 523 ff_layout_free_mirror(fls->mirror_array[i]);
266d12d4 Trond Myklebust 2015-08-24 524 fls->mirror_array[i] = mirror;
266d12d4 Trond Myklebust 2015-08-24 525 }
266d12d4 Trond Myklebust 2015-08-24 526
3064b686 Jeff Layton 2016-04-21 527 dprintk("%s: iomode %s uid %u gid %u\n", __func__,
3064b686 Jeff Layton 2016-04-21 528 lgr->range.iomode == IOMODE_READ ? "READ" : "RW",
df462af3 NeilBrown 2018-02-19 529 from_kuid(&init_user_ns, uid),
df462af3 NeilBrown 2018-02-19 530 from_kgid(&init_user_ns, gid));
d67ae825 Tom Haynes 2014-12-11 531 }
d67ae825 Tom Haynes 2014-12-11 532
c0f5f505 Trond Myklebust 2015-06-26 533 p = xdr_inline_decode(&stream, 4);
d0379a5d Trond Myklebust 2015-11-16 534 if (!p)
d0379a5d Trond Myklebust 2015-11-16 535 goto out_sort_mirrors;
c0f5f505 Trond Myklebust 2015-06-26 536 fls->flags = be32_to_cpup(p);
c0f5f505 Trond Myklebust 2015-06-26 537
d0379a5d Trond Myklebust 2015-11-16 538 p = xdr_inline_decode(&stream, 4);
d0379a5d Trond Myklebust 2015-11-16 539 if (!p)
d0379a5d Trond Myklebust 2015-11-16 540 goto out_sort_mirrors;
d0379a5d Trond Myklebust 2015-11-16 541 for (i=0; i < fls->mirror_array_cnt; i++)
d0379a5d Trond Myklebust 2015-11-16 542 fls->mirror_array[i]->report_interval = be32_to_cpup(p);
d0379a5d Trond Myklebust 2015-11-16 543
d0379a5d Trond Myklebust 2015-11-16 544 out_sort_mirrors:
d67ae825 Tom Haynes 2014-12-11 545 ff_layout_sort_mirrors(fls);
d67ae825 Tom Haynes 2014-12-11 546 rc = ff_layout_check_layout(lgr);
d67ae825 Tom Haynes 2014-12-11 547 if (rc)
d67ae825 Tom Haynes 2014-12-11 548 goto out_err_free;
d67ae825 Tom Haynes 2014-12-11 549 ret = &fls->generic_hdr;
d67ae825 Tom Haynes 2014-12-11 550 dprintk("<-- %s (success)\n", __func__);
d67ae825 Tom Haynes 2014-12-11 551 out_free_page:
d67ae825 Tom Haynes 2014-12-11 552 __free_page(scratch);
d67ae825 Tom Haynes 2014-12-11 553 return ret;
d67ae825 Tom Haynes 2014-12-11 554 out_err_free:
d67ae825 Tom Haynes 2014-12-11 555 _ff_layout_free_lseg(fls);
d67ae825 Tom Haynes 2014-12-11 556 ret = ERR_PTR(rc);
d67ae825 Tom Haynes 2014-12-11 557 dprintk("<-- %s (%d)\n", __func__, rc);
d67ae825 Tom Haynes 2014-12-11 558 goto out_free_page;
d67ae825 Tom Haynes 2014-12-11 559 }
d67ae825 Tom Haynes 2014-12-11 560
:::::: The code at line 517 was first introduced by commit
:::::: 3064b6861d00b7124558cdf79f9387f948361be3 nfs: have flexfiles mirror keep creds for both ro and rw layouts
:::::: TO: Jeff Layton <jlayton@poochiereds.net>
:::::: CC: Anna Schumaker <Anna.Schumaker@Netapp.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
next prev parent reply other threads:[~2018-02-19 14:59 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-19 5:02 [PATCH 00/23] Remove generic rpc credentials, and associated changed - V3 NeilBrown
2018-02-19 5:02 ` [PATCH 02/23] cred: add get_cred_rcu() NeilBrown
2018-02-19 5:02 ` [PATCH 01/23] cred: add cred_fscmp() for comparing creds NeilBrown
2018-02-19 5:02 ` [PATCH 06/23] SUNRPC: remove groupinfo from struct auth_cred NeilBrown
2018-02-19 5:02 ` [PATCH 05/23] SUNRPC: add 'struct cred *' to auth_cred and rpc_cred NeilBrown
2018-02-19 5:02 ` [PATCH 04/23] cred: allow get_cred() and put_cred() to be given NULL NeilBrown
2018-02-19 5:02 ` [PATCH 03/23] cred: export get_task_cred() NeilBrown
2018-02-19 5:02 ` [PATCH 21/23] SUNRPC: remove crbind rpc_cred operation NeilBrown
2018-02-19 5:02 ` [PATCH 13/23] SUNRPC: introduce RPC_TASK_NULLCREDS to request auth_none NeilBrown
2018-02-19 5:02 ` [PATCH 08/23] SUNRPC: remove machine_cred field from struct auth_cred NeilBrown
2018-02-19 5:02 ` [PATCH 12/23] NFS/SUNRPC: don't lookup machine credential until rpcauth_bindcred() NeilBrown
2018-02-19 14:41 ` kbuild test robot
2018-02-19 5:02 ` [PATCH 18/23] NFS: struct nfs_open_dir_context: convert rpc_cred pointer to cred NeilBrown
2018-02-19 5:02 ` [PATCH 23/23] SUNRPC: discard cr_uid from struct rpc_cred NeilBrown
2018-02-19 5:02 ` [PATCH 16/23] SUNRPC: remove RPCAUTH_AUTH_NO_CRKEY_TIMEOUT NeilBrown
2018-02-19 5:02 ` [PATCH 19/23] NFS/NFSD/SUNRPC: replace generic creds with 'struct cred' NeilBrown
2018-02-19 14:58 ` kbuild test robot [this message]
2018-02-20 0:17 ` NeilBrown
2018-02-22 1:51 ` [kbuild-all] " Philip Li
2018-02-22 2:31 ` Fengguang Wu
2018-02-19 5:02 ` [PATCH 14/23] SUNRPC: add side channel to use non-generic cred for rpc call NeilBrown
2018-02-20 0:10 ` [PATCH 14/23 - V2] " NeilBrown
2018-02-19 5:02 ` [PATCH 15/23] NFS: move credential expiry tracking out of SUNRPC into NFS NeilBrown
2018-02-19 5:02 ` [PATCH 22/23] SUNRPC: simplify auth_unix NeilBrown
2018-02-19 5:02 ` [PATCH 20/23] SUNRPC: remove generic cred code NeilBrown
2018-02-19 5:02 ` [PATCH 07/23] SUNRPC: remove uid and gid from struct auth_cred NeilBrown
2018-02-19 5:02 ` [PATCH 09/23] NFSv4: add cl_root_cred for use when machine cred is not available NeilBrown
2018-02-19 5:02 ` [PATCH 11/23] SUNRPC: discard RPC_DO_ROOTOVERRIDE() NeilBrown
2018-02-19 5:02 ` [PATCH 10/23] NFSv4: don't require lock for get_renew_cred or get_machine_cred NeilBrown
2018-02-19 5:02 ` [PATCH 17/23] NFS: change access cache to use 'struct cred' NeilBrown
-- strict thread matches above, loose matches on Subject: below --
2018-11-07 4:12 [PATCH 00/23 - V4] NFS: Remove generic RPC credentials NeilBrown
2018-11-07 4:12 ` [PATCH 19/23] NFS/NFSD/SUNRPC: replace generic creds with 'struct cred' NeilBrown
2018-12-03 0:30 [PATCH 00/23 - V5] NFS: Remove generic RPC credentials NeilBrown
2018-12-03 0:30 ` [PATCH 19/23] NFS/NFSD/SUNRPC: replace generic creds with 'struct cred' NeilBrown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201802192252.Y6fdV4Fk%fengguang.wu@intel.com \
--to=lkp@intel.com \
--cc=anna.schumaker@netapp.com \
--cc=kbuild-all@01.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neilb@suse.com \
--cc=trond.myklebust@primarydata.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).