23 Sep, 2006

4 commits


25 Aug, 2006

1 commit

  • Check the bounds of length specifiers more thoroughly in the XDR decoding of
    NFS4 readdir reply data.

    Currently, if the server returns a bitmap or attr length that causes the
    current decode point pointer to wrap, this could go undetected (consider a
    small "negative" length on a 32-bit machine).

    Also add a check into the main XDR decode handler to make sure that the amount
    of data is a multiple of four bytes (as specified by RFC-1014). This makes
    sure that we can do u32* pointer subtraction in the NFS client without risking
    an undefined result (the result is undefined if the pointers are not correctly
    aligned with respect to one another).

    Signed-Off-By: David Howells
    Signed-off-by: Trond Myklebust
    (cherry picked from 5861fddd64a7eaf7e8b1a9997455a24e7f688092 commit)

    David Howells
     

09 Jun, 2006

7 commits


26 Mar, 2006

1 commit

  • * git://git.linux-nfs.org/pub/linux/nfs-2.6: (103 commits)
    SUNRPC,RPCSEC_GSS: spkm3--fix config dependencies
    SUNRPC,RPCSEC_GSS: spkm3: import contexts using NID_cast5_cbc
    LOCKD: Make nlmsvc_traverse_shares return void
    LOCKD: nlmsvc_traverse_blocks return is unused
    SUNRPC,RPCSEC_GSS: fix krb5 sequence numbers.
    NFSv4: Dont list system.nfs4_acl for filesystems that don't support it.
    SUNRPC,RPCSEC_GSS: remove unnecessary kmalloc of a checksum
    SUNRPC: Ensure rpc_call_async() always calls tk_ops->rpc_release()
    SUNRPC: Fix memory barriers for req->rq_received
    NFS: Fix a race in nfs_sync_inode()
    NFS: Clean up nfs_flush_list()
    NFS: Fix a race with PG_private and nfs_release_page()
    NFSv4: Ensure the callback daemon flushes signals
    SUNRPC: Fix a 'Busy inodes' error in rpc_pipefs
    NFS, NLM: Allow blocking locks to respect signals
    NFS: Make nfs_fhget() return appropriate error values
    NFSv4: Fix an oops in nfs4_fill_super
    lockd: blocks should hold a reference to the nlm_file
    NFSv4: SETCLIENTID_CONFIRM should handle NFS4ERR_DELAY/NFS4ERR_RESOURCE
    NFSv4: Send the delegation stateid for SETATTR calls
    ...

    Linus Torvalds
     

24 Mar, 2006

1 commit

  • Use ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0]) and remove a
    duplicate of ARRAY_SIZE. Some trailing whitespaces are also deleted.

    Signed-off-by: Tobias Klauser
    Cc: David Howells
    Cc: Dave Kleikamp
    Acked-by: Trond Myklebust
    Cc: Neil Brown
    Cc: Chris Mason
    Cc: Jeff Mahoney
    Cc: Christoph Hellwig
    Cc: Nathan Scott
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tobias Klauser
     

21 Mar, 2006

1 commit

  • Add fields to the rpc_procinfo struct that allow the display of a
    human-readable name for each procedure in the rpc_iostats output.

    Also fix it so that the NFSv4 stats are broken up correctly by
    sub-procedure number. NFSv4 uses only two real RPC procedures:
    NULL, and COMPOUND.

    Test plan:
    Mount with NFSv2, NFSv3, and NFSv4, and do "cat /proc/self/mountstats".

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     

07 Jan, 2006

7 commits


28 Oct, 2005

8 commits


19 Oct, 2005

5 commits

  • Stop handing garbage to userspace in the case where a weird server clears the
    acl bit in the getattr return (despite the fact that they've already claimed
    acl support.)

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

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

    Trond Myklebust
     
  • Currently we fail to do so if the process was signalled.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • Once the state_owner and lock_owner semaphores get removed, it will be
    possible for other OPEN requests to reopen the same file if they have
    lower sequence ids than our CLOSE call.
    This patch ensures that we recheck the file state once
    nfs_wait_on_sequence() has completed waiting.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • NFSv4 file state-changing functions such as OPEN, CLOSE, LOCK,... are all
    labelled with "sequence identifiers" in order to prevent the server from
    reordering RPC requests, as this could cause its file state to
    become out of sync with the client.

    Currently the NFS client code enforces this ordering locally using
    semaphores to restrict access to structures until the RPC call is done.
    This, of course, only works with synchronous RPC calls, since the
    user process must first grab the semaphore.
    By dropping semaphores, and instead teaching the RPC engine to hold
    the RPC calls until they are ready to be sent, we can extend this
    process to work nicely with asynchronous RPC calls too.

    This patch adds a new list called "rpc_sequence" that defines the order
    of the RPC calls to be sent. We add one such list for each state_owner.
    When an RPC call is ready to be sent, it checks if it is top of the
    rpc_sequence list. If so, it proceeds. If not, it goes back to sleep,
    and loops until it hits top of the list.
    Once the RPC call has completed, it can then bump the sequence id counter,
    and remove itself from the rpc_sequence list, and then wake up the next
    sleeper.

    Note that the state_owner sequence ids and lock_owner sequence ids are
    all indexed to the same rpc_sequence list, so OPEN, LOCK,... requests
    are all ordered w.r.t. each other.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     

23 Jun, 2005

5 commits