18 Apr, 2014

2 commits

  • Since we're still limiting attributes to a page, the result here is that
    a large getattr result will return NFS4ERR_REP_TOO_BIG/TOO_BIG_TO_CACHE
    instead of NFS4ERR_RESOURCE.

    Both error returns are wrong, and the real bug here is the arbitrary
    limit on getattr results, fixed by as-yet out-of-tree patches. But at a
    minimum we can make life easier for clients by sticking to one broken
    behavior in released kernels instead of two....

    Trond says:

    one immediate consequence of this patch will be that NFSv4.1
    clients will now report EIO instead of EREMOTEIO if they hit the
    problem. That may make debugging a little less obvious.

    Another consequence will be that if we ever do try to add client
    side handling of NFS4ERR_REP_TOO_BIG, then we now have to deal
    with the “handle existing buggy server” syndrome.

    Reported-by: Trond Myklebust
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • ...otherwise the logic in the timeout handling doesn't work correctly.

    Spotted-by: Trond Myklebust
    Cc: stable@vger.kernel.org
    Signed-off-by: Jeff Layton
    Signed-off-by: J. Bruce Fields

    Jeff Layton
     

09 Apr, 2014

1 commit

  • Pull nfsd updates from Bruce Fields:
    "Highlights:
    - server-side nfs/rdma fixes from Jeff Layton and Tom Tucker
    - xdr fixes (a larger xdr rewrite has been posted but I decided it
    would be better to queue it up for 3.16).
    - miscellaneous fixes and cleanup from all over (thanks especially to
    Kinglong Mee)"

    * 'for-3.15' of git://linux-nfs.org/~bfields/linux: (36 commits)
    nfsd4: don't create unnecessary mask acl
    nfsd: revert v2 half of "nfsd: don't return high mode bits"
    nfsd4: fix memory leak in nfsd4_encode_fattr()
    nfsd: check passed socket's net matches NFSd superblock's one
    SUNRPC: Clear xpt_bc_xprt if xs_setup_bc_tcp failed
    NFSD/SUNRPC: Check rpc_xprt out of xs_setup_bc_tcp
    SUNRPC: New helper for creating client with rpc_xprt
    NFSD: Free backchannel xprt in bc_destroy
    NFSD: Clear wcc data between compound ops
    nfsd: Don't return NFS4ERR_STALE_STATEID for NFSv4.1+
    nfsd4: fix nfs4err_resource in 4.1 case
    nfsd4: fix setclientid encode size
    nfsd4: remove redundant check from nfsd4_check_resp_size
    nfsd4: use more generous NFS4_ACL_MAX
    nfsd4: minor nfsd4_replay_cache_entry cleanup
    nfsd4: nfsd4_replay_cache_entry should be static
    nfsd4: update comments with obsolete function name
    rpc: Allow xdr_buf_subsegment to operate in-place
    NFSD: Using free_conn free connection
    SUNRPC: fix memory leak of peer addresses in XPRT
    ...

    Linus Torvalds
     

05 Apr, 2014

1 commit

  • Pull renameat2 system call from Miklos Szeredi:
    "This adds a new syscall, renameat2(), which is the same as renameat()
    but with a flags argument.

    The purpose of extending rename is to add cross-rename, a symmetric
    variant of rename, which exchanges the two files. This allows
    interesting things, which were not possible before, for example
    atomically replacing a directory tree with a symlink, etc... This
    also allows overlayfs and friends to operate on whiteouts atomically.

    Andy Lutomirski also suggested a "noreplace" flag, which disables the
    overwriting behavior of rename.

    These two flags, RENAME_EXCHANGE and RENAME_NOREPLACE are only
    implemented for ext4 as an example and for testing"

    * 'cross-rename' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
    ext4: add cross rename support
    ext4: rename: split out helper functions
    ext4: rename: move EMLINK check up
    ext4: rename: create ext4_renament structure for local vars
    vfs: add cross-rename
    vfs: lock_two_nondirectories: allow directory args
    security: add flags to rename hooks
    vfs: add RENAME_NOREPLACE flag
    vfs: add renameat2 syscall
    vfs: rename: use common code for dir and non-dir
    vfs: rename: move d_move() up
    vfs: add d_is_dir()

    Linus Torvalds
     

04 Apr, 2014

3 commits

  • Any setattr of the ACL attribute, even if it sets just the basic 3-ACE
    ACL exactly as it was returned from a file with only mode bits, creates
    a mask entry, and it is only the mask, not group, entry that is changed
    by subsequent modifications of the mode bits.

    So, for example, it's surprising that GROUP@ is left without read or
    write permissions after a chmod 0666:

    touch test
    chmod 0600 test
    nfs4_getfacl test
    A::OWNER@:rwatTcCy
    A::GROUP@:tcy
    A::EVERYONE@:tcy
    nfs4_getfacl test | nfs4_setfacl -S - test #
    chmod 0666 test
    nfs4_getfacl test
    A::OWNER@:rwatTcCy
    A::GROUP@:tcy
    D::GROUP@:rwa
    A::EVERYONE@:rwatcy

    So, let's stop creating the unnecessary mask ACL.

    A mask will still be created on non-trivial ACLs (ACLs with actual named
    user and group ACEs), so the odd posix-acl behavior of chmod modifying
    only the mask will still be left in that case; but that's consistent
    with local behavior.

    Reported-by: Soumya Koduri
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • This reverts the part of commit 6e14b46b91fee8a049b0940333ce13a820beaaa5
    that changes NFSv2 behavior.

    Mark Lord found that it broke nfs-root for Linux clients, because it
    broke NFSv2.

    In fact, from RFC 1094:

    "Notice that the file type is specified both in the mode bits
    and in the file type. This is really a bug in the protocol and
    will be fixed in future versions."

    So NFSv2 clients really are expected to depend on the high bits of the
    mode.

    Cc: stable@kernel.org
    Reported-by: Mark Lord
    Reviewed-by: Jeff Layton
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • After commit 6307f8fee295 ("security: remove dead hook task_setgroups"),
    set_groups will always return zero, so we could just remove return value
    of set_groups.

    This patch reduces code size, and simplfies code to use set_groups,
    because we don't need to check its return value any more.

    [akpm@linux-foundation.org: remove obsolete claims from set_groups() comment]
    Signed-off-by: Wang YanQing
    Cc: "Eric W. Biederman"
    Cc: Serge Hallyn
    Cc: Eric Paris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wang YanQing
     

01 Apr, 2014

3 commits

  • Add new renameat2 syscall, which is the same as renameat with an added
    flags argument.

    Pass flags to vfs_rename() and to i_op->rename() as well.

    Signed-off-by: Miklos Szeredi
    Reviewed-by: J. Bruce Fields

    Miklos Szeredi
     
  • fh_put() does not free the temporary file handle.

    Signed-off-by: Yan, Zheng
    Cc: stable@vger.kernel.org
    Signed-off-by: J. Bruce Fields

    Yan, Zheng
     
  • There could be a case, when NFSd file system is mounted in network, different
    to socket's one, like below:

    "ip netns exec" creates new network and mount namespace, which duplicates NFSd
    mount point, created in init_net context. And thus NFS server stop in nested
    network context leads to RPCBIND client destruction in init_net.
    Then, on NFSd start in nested network context, rpc.nfsd process creates socket
    in nested net and passes it into "write_ports", which leads to RPCBIND sockets
    creation in init_net context because of the same reason (NFSd monut point was
    created in init_net context). An attempt to register passed socket in nested
    net leads to panic, because no RPCBIND client present in nexted network
    namespace.

    This patch add check that passed socket's net matches NFSd superblock's one.
    And returns -EINVAL error to user psace otherwise.

    v2: Put socket on exit.

    Reported-by: Weng Meiling
    Signed-off-by: Stanislav Kinsbursky
    Cc: stable@vger.kernel.org
    Signed-off-by: J. Bruce Fields

    Stanislav Kinsbursky
     

30 Mar, 2014

3 commits

  • Besides checking rpc_xprt out of xs_setup_bc_tcp,
    increase it's reference (it's important).

    Signed-off-by: Kinglong Mee
    Signed-off-by: J. Bruce Fields

    Kinglong Mee
     
  • Testing NFS4.0 by pynfs, I got some messeages as,
    "nfsd: inode locked twice during operation."

    When one compound RPC contains two or more ops that locks
    the filehandle,the second op will cause the message.

    As two SETATTR ops, after the first SETATTR, nfsd will not call
    fh_put() to release current filehandle, it means filehandle have
    unlocked with fh_post_saved = 1.
    The second SETATTR find fh_post_saved = 1, and printk the message.

    v2: introduce helper fh_clear_wcc().

    Signed-off-by: Kinglong Mee
    Signed-off-by: J. Bruce Fields

    Kinglong Mee
     
  • RFC5661 obsoletes NFS4ERR_STALE_STATEID in favour of NFS4ERR_BAD_STATEID.

    Note that because nfsd encodes the clientid boot time in the stateid, we
    can hit this error case in certain scenarios where the Linux client
    state management thread exits early, before it has finished recovering
    all state.

    Reported-by: Idan Kedar
    Signed-off-by: Trond Myklebust
    Signed-off-by: J. Bruce Fields

    Trond Myklebust
     

29 Mar, 2014

10 commits


28 Mar, 2014

8 commits

  • When stopping nfsd, I got BUG messages, and soft lockup messages,
    The problem is cuased by double rb_erase() in nfs4_state_destroy_net()
    and destroy_client().

    This patch just let nfsd traversing unconfirmed client through
    hash-table instead of rbtree.

    [ 2325.021995] BUG: unable to handle kernel NULL pointer dereference at
    (null)
    [ 2325.022809] IP: [] rb_erase+0x14c/0x390
    [ 2325.022982] PGD 7a91b067 PUD 7a33d067 PMD 0
    [ 2325.022982] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
    [ 2325.022982] Modules linked in: nfsd(OF) cfg80211 rfkill bridge stp
    llc snd_intel8x0 snd_ac97_codec ac97_bus auth_rpcgss nfs_acl serio_raw
    e1000 i2c_piix4 ppdev snd_pcm snd_timer lockd pcspkr joydev parport_pc
    snd parport i2c_core soundcore microcode sunrpc ata_generic pata_acpi
    [last unloaded: nfsd]
    [ 2325.022982] CPU: 1 PID: 2123 Comm: nfsd Tainted: GF O
    3.14.0-rc8+ #2
    [ 2325.022982] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
    VirtualBox 12/01/2006
    [ 2325.022982] task: ffff88007b384800 ti: ffff8800797f6000 task.ti:
    ffff8800797f6000
    [ 2325.022982] RIP: 0010:[] []
    rb_erase+0x14c/0x390
    [ 2325.022982] RSP: 0018:ffff8800797f7d98 EFLAGS: 00010246
    [ 2325.022982] RAX: ffff880079c1f010 RBX: ffff880079f4c828 RCX:
    0000000000000000
    [ 2325.022982] RDX: 0000000000000000 RSI: ffff880079bcb070 RDI:
    ffff880079f4c810
    [ 2325.022982] RBP: ffff8800797f7d98 R08: 0000000000000000 R09:
    ffff88007964fc70
    [ 2325.022982] R10: 0000000000000000 R11: 0000000000000400 R12:
    ffff880079f4c800
    [ 2325.022982] R13: ffff880079bcb000 R14: ffff8800797f7da8 R15:
    ffff880079f4c860
    [ 2325.022982] FS: 0000000000000000(0000) GS:ffff88007f900000(0000)
    knlGS:0000000000000000
    [ 2325.022982] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [ 2325.022982] CR2: 0000000000000000 CR3: 000000007a3ef000 CR4:
    00000000000006e0
    [ 2325.022982] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
    0000000000000000
    [ 2325.022982] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7:
    0000000000000400
    [ 2325.022982] Stack:
    [ 2325.022982] ffff8800797f7de0 ffffffffa0191c6e ffff8800797f7da8
    ffff8800797f7da8
    [ 2325.022982] ffff880079f4c810 ffff880079bcb000 ffffffff81cc26c0
    ffff880079c1f010
    [ 2325.022982] ffff880079bcb070 ffff8800797f7e28 ffffffffa01977f2
    ffff8800797f7df0
    [ 2325.022982] Call Trace:
    [ 2325.022982] [] destroy_client+0x32e/0x3b0 [nfsd]
    [ 2325.022982] [] nfs4_state_shutdown_net+0x1a2/0x220
    [nfsd]
    [ 2325.022982] [] nfsd_shutdown_net+0x38/0x70 [nfsd]
    [ 2325.022982] [] nfsd_last_thread+0x4e/0x80 [nfsd]
    [ 2325.022982] [] svc_shutdown_net+0x2b/0x30 [sunrpc]
    [ 2325.022982] [] nfsd_destroy+0x5b/0x80 [nfsd]
    [ 2325.022982] [] nfsd+0x103/0x130 [nfsd]
    [ 2325.022982] [] ? nfsd_destroy+0x80/0x80 [nfsd]
    [ 2325.022982] [] kthread+0xd2/0xf0
    [ 2325.022982] [] ? insert_kthread_work+0x40/0x40
    [ 2325.022982] [] ret_from_fork+0x7c/0xb0
    [ 2325.022982] [] ? insert_kthread_work+0x40/0x40
    [ 2325.022982] Code: 48 83 e1 fc 48 89 10 0f 84 02 01 00 00 48 3b 41 10
    0f 84 08 01 00 00 48 89 51 08 48 89 fa e9 74 ff ff ff 0f 1f 40 00 48 8b
    50 10 02 01 0f 84 93 00 00 00 48 8b 7a 10 48 85 ff 74 05 f6 07 01
    [ 2325.022982] RIP [] rb_erase+0x14c/0x390
    [ 2325.022982] RSP
    [ 2325.022982] CR2: 0000000000000000
    [ 2325.022982] ---[ end trace 28c27ed011655e57 ]---

    [ 228.064071] BUG: soft lockup - CPU#0 stuck for 22s! [nfsd:558]
    [ 228.064428] Modules linked in: ip6t_rpfilter ip6t_REJECT cfg80211
    xt_conntrack rfkill ebtable_nat ebtable_broute bridge stp llc
    ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6
    nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw
    ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4
    nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security
    iptable_raw nfsd(OF) auth_rpcgss nfs_acl lockd snd_intel8x0
    snd_ac97_codec ac97_bus joydev snd_pcm snd_timer e1000 sunrpc snd ppdev
    parport_pc serio_raw pcspkr i2c_piix4 microcode parport soundcore
    i2c_core ata_generic pata_acpi
    [ 228.064539] CPU: 0 PID: 558 Comm: nfsd Tainted: GF O
    3.14.0-rc8+ #2
    [ 228.064539] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
    VirtualBox 12/01/2006
    [ 228.064539] task: ffff880076adec00 ti: ffff880074616000 task.ti:
    ffff880074616000
    [ 228.064539] RIP: 0010:[] []
    rb_next+0x27/0x50
    [ 228.064539] RSP: 0018:ffff880074617de0 EFLAGS: 00000282
    [ 228.064539] RAX: ffff880074478010 RBX: ffff88007446f860 RCX:
    0000000000000014
    [ 228.064539] RDX: ffff880074478010 RSI: 0000000000000000 RDI:
    ffff880074478010
    [ 228.064539] RBP: ffff880074617de0 R08: 0000000000000000 R09:
    0000000000000012
    [ 228.064539] R10: 0000000000000001 R11: ffffffffffffffec R12:
    ffffea0001d11a00
    [ 228.064539] R13: ffff88007f401400 R14: ffff88007446f800 R15:
    ffff880074617d50
    [ 228.064539] FS: 0000000000000000(0000) GS:ffff88007f800000(0000)
    knlGS:0000000000000000
    [ 228.064539] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [ 228.064539] CR2: 00007fe9ac6ec000 CR3: 000000007a5d6000 CR4:
    00000000000006f0
    [ 228.064539] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
    0000000000000000
    [ 228.064539] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7:
    0000000000000400
    [ 228.064539] Stack:
    [ 228.064539] ffff880074617e28 ffffffffa01ab7db ffff880074617df0
    ffff880074617df0
    [ 228.064539] ffff880079273000 ffffffff81cc26c0 ffffffff81cc26c0
    0000000000000000
    [ 228.064539] 0000000000000000 ffff880074617e48 ffffffffa01840b8
    ffffffff81cc26c0
    [ 228.064539] Call Trace:
    [ 228.064539] [] nfs4_state_shutdown_net+0x18b/0x220
    [nfsd]
    [ 228.064539] [] nfsd_shutdown_net+0x38/0x70 [nfsd]
    [ 228.064539] [] nfsd_last_thread+0x4e/0x80 [nfsd]
    [ 228.064539] [] svc_shutdown_net+0x2b/0x30 [sunrpc]
    [ 228.064539] [] nfsd_destroy+0x5b/0x80 [nfsd]
    [ 228.064539] [] nfsd+0x103/0x130 [nfsd]
    [ 228.064539] [] ? nfsd_destroy+0x80/0x80 [nfsd]
    [ 228.064539] [] kthread+0xd2/0xf0
    [ 228.064539] [] ? insert_kthread_work+0x40/0x40
    [ 228.064539] [] ret_from_fork+0x7c/0xb0
    [ 228.064539] [] ? insert_kthread_work+0x40/0x40
    [ 228.064539] Code: 1f 44 00 00 55 48 8b 17 48 89 e5 48 39 d7 74 3b 48
    8b 47 08 48 85 c0 75 0e eb 25 66 0f 1f 84 00 00 00 00 00 48 89 d0 48 8b
    50 10 85 d2 75 f4 5d c3 66 90 48 3b 78 08 75 f6 48 8b 10 48 89 c7

    Fixes: ac55fdc408039 (nfsd: move the confirmed and unconfirmed hlists...)
    Signed-off-by: Kinglong Mee
    Cc: stable@vger.kernel.org
    Reviewed-by: Jeff Layton
    Signed-off-by: J. Bruce Fields

    Kinglong Mee
     
  • We have a WARN_ON in the nfsd4_decode_write() that tells us when the
    client has sent a request that is not padded out properly according to
    RFC4506. A WARN_ON really isn't appropriate in this case though since
    this indicates a client bug, not a server one.

    Move this check out to the top-level compound decoder and have it just
    explicitly return an error. Also add a dprintk() that shows the client
    address and xid to help track down clients and frames that trigger it.

    Signed-off-by: Jeff Layton
    Signed-off-by: J. Bruce Fields

    Jeff Layton
     
  • Looks like this bug has been here since these write counts were
    introduced, not sure why it was just noticed now.

    Thanks also to Jan Kara for pointing out the problem.

    Cc: stable@vger.kernel.org
    Reported-by: Matthew Rahtz
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • If the entire operation fails then there's nothing to encode.

    Cc: stable@vger.kernel.org
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • This fixes an ommission from 18032ca062e621e15683cb61c066ef3dc5414a7b
    "NFSD: Server implementation of MAC Labeling", which increased the size
    of the setattr error reply without increasing COMPOUND_ERR_SLACK_SPACE.

    Cc: stable@vger.kernel.org
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • If a client attempts to set an excessively large ACL, return
    NFS4ERR_FBIG instead of NFS4ERR_RESOURCE. I'm not sure FBIG is correct,
    but I'm positive RESOURCE is wrong (it isn't even a well-defined error
    any more for NFS versions since 4.1).

    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • Cc: stable@vger.kernel.org
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • This was an omission from 8c18f2052e756e7d5dea712fc6e7ed70c00e8a39
    "nfsd41: SUPPATTR_EXCLCREAT attribute".

    Cc: Benny Halevy
    Cc: stable@vger.kernel.org
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     

19 Feb, 2014

1 commit


12 Feb, 2014

1 commit

  • 4ac7249ea5a0ceef9f8269f63f33cc873c3fac61 "nfsd: use get_acl and
    ->set_acl" forgets to set the size in the case get_acl() succeeds, so
    _posix_to_nfsv4_one() can then write past the end of its allocation.
    Symptoms were slab corruption warnings.

    Also, some minor cleanup while we're here. (Among other things, note
    that the first few lines guarantee that pacl is non-NULL.)

    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     

31 Jan, 2014

1 commit

  • Pull nfsd updates from Bruce Fields:
    - Handle some loose ends from the vfs read delegation support.
    (For example nfsd can stop breaking leases on its own in a
    fewer places where it can now depend on the vfs to.)
    - Make life a little easier for NFSv4-only configurations
    (thanks to Kinglong Mee).
    - Fix some gss-proxy problems (thanks Jeff Layton).
    - miscellaneous bug fixes and cleanup

    * 'for-3.14' of git://linux-nfs.org/~bfields/linux: (38 commits)
    nfsd: consider CLAIM_FH when handing out delegation
    nfsd4: fix delegation-unlink/rename race
    nfsd4: delay setting current_fh in open
    nfsd4: minor nfs4_setlease cleanup
    gss_krb5: use lcm from kernel lib
    nfsd4: decrease nfsd4_encode_fattr stack usage
    nfsd: fix encode_entryplus_baggage stack usage
    nfsd4: simplify xdr encoding of nfsv4 names
    nfsd4: encode_rdattr_error cleanup
    nfsd4: nfsd4_encode_fattr cleanup
    minor svcauth_gss.c cleanup
    nfsd4: better VERIFY comment
    nfsd4: break only delegations when appropriate
    NFSD: Fix a memory leak in nfsd4_create_session
    sunrpc: get rid of use_gssp_lock
    sunrpc: fix potential race between setting use_gss_proxy and the upcall rpc_clnt
    sunrpc: don't wait for write before allowing reads from use-gss-proxy file
    nfsd: get rid of unused function definition
    Define op_iattr for nfsd4_open instead using macro
    NFSD: fix compile warning without CONFIG_NFSD_V3
    ...

    Linus Torvalds
     

28 Jan, 2014

4 commits

  • CLAIM_FH was added by NFSv4.1. It is the same as CLAIM_NULL except that it
    uses only current FH to identify the file to be opened.

    The NFS client is using CLAIM_FH if the FH is available when opening a file.
    Currently, we cannot get any delegation if we stat a file before open it
    because the server delegation code does not recognize CLAIM_FH.

    We tested this patch and found delegation can be handed out now when claim is
    CLAIM_FH.

    See http://marc.info/?l=linux-nfs&m=136369847801388&w=2 and
    http://www.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues#New_open_claim_types

    Signed-off-by: Ming Chen
    Signed-off-by: J. Bruce Fields

    Ming Chen
     
  • If a file is unlinked or renamed between the time when we do the local
    open and the time when we get the delegation, then we will return to the
    client indicating that it holds a delegation even though the file no
    longer exists under the name it was open under.

    But a client performing an open-by-name, when it is returned a
    delegation, must be able to assume that the file is still linked at the
    name it was opened under.

    So, hold the parent i_mutex for longer to prevent concurrent renames or
    unlinks.

    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • This is basically a no-op, to simplify a following patch.

    Acked-by: Jeff Layton
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • As far as I can tell, this list is used only under the state lock, so we
    may as well do this in the simpler order.

    Acked-by: Jeff Layton
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     

26 Jan, 2014

1 commit

  • Remove the boilerplate code to marshall and unmarhall ACL objects into
    xattrs and operate on the posix_acl objects directly. Also move all
    the ACL handling code into nfs?acl.c where it belongs.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     

25 Jan, 2014

1 commit

  • A struct svc_fh is 320 bytes on x86_64, it'd be better not to have these
    on the stack.

    kmalloc'ing them probably isn't ideal either, but this is the simplest
    thing to do. If it turns out to be a problem in the readdir case then
    we could add a svc_fh to nfsd4_readdir and pass that in.

    Acked-by: Jeff Layton
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields