13 Jul, 2011

3 commits

  • Mark all deviceids established under an expired MDS clientid as invalid.
    Stop all new i/o through DS and send through the MDS.
    Don't use any new LAYOUTGETs that use the invalid deviceid. Purge all layouts
    established under the expired MDS clientid.
    Remove the MDS clientid deviceid and data servers reference

    Signed-off-by: Andy Adamson
    Signed-off-by: Trond Myklebust

    Andy Adamson
     
  • This parses and stores all addresses associated with each data server,
    laying the groundwork for supporting multipath to data servers.

    - Skips over addresses that cannot be parsed (ie IPv6 addrs if v6 is not
    enabled). Only fails if none of the addresses are recognizable
    - Currently only uses the first address that parsed cleanly
    - Tested against pynfs server (modified to support multipath)

    Signed-off-by: Weston Andros Adamson
    Signed-off-by: Trond Myklebust

    Weston Andros Adamson
     
  • Handle ipv6 remote addresses from GETDEVICEINFO

    - supports netid "tcp" for ipv4 and "tcp6" for ipv6 as rfc 5665 specifies
    - added ds_remotestr to avoid having to handle different AFs in every dprintk
    - tested against pynfs 4.1 server, submitting ipv6 support patch to pynfs
    - tested with IPv6 disabled, it compiles cleanly and relies on rpc_pton to
    refuse to accept IPv6 addresses

    Signed-off-by: Weston Andros Adamson
    Signed-off-by: Trond Myklebust

    Weston Andros Adamson
     

30 May, 2011

1 commit

  • Use the pnfs_layoutdriver_type both as a qualifier for the deviceid,
    distinguishing deviceid from different layout types on the server,
    and for freeing the layout-driver allocated structure containing the
    nfs4_deviceid_node.

    [BUG in _deviceid_purge_client]
    [layout_driver MUST set free_deviceid_node if using dev-cache]
    [let ver < 4.1 compile]
    Signed-off-by: Boaz Harrosh
    [removed EXPORT_SYMBOL_GPL(nfs4_deviceid_purge_client)]
    Signed-off-by: Benny Halevy

    Benny Halevy
     

29 May, 2011

2 commits

  • Move deviceid cache from the pnfs files layout driver to the
    generic layer in preparation for the objects layout driver.

    Signed-off-by: Benny Halevy

    Benny Halevy
     
  • deviceids are unique per server, per layout type.
    Therefore, in the global cache in the files layout driver
    deviceids from different servers may clash so we need
    to qualify them with a struct nfs_client that represents
    the nfs server that returned the deviceid.

    Introduced in 2.6.39 commit ea8eecdd
    "NFSv4.1 move deviceid cache to filelayout driver"

    Signed-off-by: Benny Halevy

    Benny Halevy
     

12 May, 2011

1 commit


31 Mar, 2011

1 commit


24 Mar, 2011

1 commit


12 Mar, 2011

3 commits

  • If a data server is unavailable, go through MDS.

    Mark the deviceid containing the data server as a negative cache entry.
    Do not try to connect to any data server on a deviceid marked as a negative
    cache entry. Mark any layout that tries to use the marked deviceid as failed.

    Inodes with a layout marked as fails will not use the layout for I/O, and will
    not perform any more layoutgets.
    Inodes without a layout will still do layoutget, but the layout will get
    marked immediately.

    Signed-off-by: Andy Adamson
    Signed-off-by: Trond Myklebust

    Andy Adamson
     
  • No need for generic cache with only one user.
    Keep a simple hash of deviceids in the filelayout driver.

    Signed-off-by: Christoph Hellwig
    Acked-by: Andy Adamson
    Signed-off-by: Trond Myklebust

    Christoph Hellwig
     
  • Prepare for filelayout_read_pagelist with helper functions that find the correct
    data server, filehandle, and offset.

    Signed-off-by: Andy Adamson
    Signed-off-by: Dean Hildebrand
    Signed-off-by: Fred Isaman
    Signed-off-by: Marc Eshel
    Signed-off-by: Mike Sager
    Signed-off-by: Oleg Drokin
    Signed-off-by: Tao Guo
    Signed-off-by: Tigran Mkrtchyan
    Signed-off-by: Tigran Mkrtchyan
    Signed-off-by: Andy Adamson
    Signed-off-by: Benny Halevy
    Signed-off-by: Trond Myklebust

    Fred Isaman
     

25 Oct, 2010

1 commit

  • Implement the driver's io_ops->alloc_lseg and free_lseg functions,
    which integrate into the deviceid cache and calls out to
    nfs4_proc_getdeviceinfo when necessary.

    Signed-off-by: Andy Adamson
    Signed-off-by: Dean Hildebrand
    Signed-off-by: Marc Eshel
    Signed-off-by: Mike Sager
    Signed-off-by: Oleg Drokin
    Signed-off-by: Ricardo Labiaga
    Signed-off-by: Tao Guo
    Signed-off-by: Boaz Harrosh
    Signed-off-by: Fred Isaman
    Signed-off-by: Trond Myklebust

    Andy Adamson