• S
    pnfs-obj: autologin: Add support for protocol autologin · 18d98f6c
    Sachin Bhamare 提交于
    The pnfs-objects protocol mandates that we autologin into devices not
    present in the system, according to information specified in the
    get_device_info returned from the server.
    
    The Protocol specifies two login hints.
    1. An IP address:port combination
    2. A string URI which is constructed as a URL with a protocol prefix
       followed by :// and a string as address. For each  protocol prefix
       the string-address format might be different.
    
    We only support the second option. The first option is just redundant
    to the second one.
    NOTE: The Kernel part of autologin does not parse the URI string. It
    just channels it to a user-mode script. So any new login protocols should
    only update the user-mode script which is a part of the nfs-utils package,
    but the Kernel need not change.
    
    We implement the autologin by using the call_usermodehelper() API.
    (Thanks to Steve Dickson <steved@redhat.com> for pointing it out)
    So there is no running daemon needed, and/or special setup.
    
    We Add the osd_login_prog Kernel module parameters which defaults to:
    	/sbin/osd_login
    
    Kernel try's to upcall the program specified in osd_login_prog. If the file is
    not found or the execution fails Kernel will disable any farther upcalls, by
    zeroing out  osd_login_prog, Until Admin re-enables it by setting the
    osd_login_prog parameter to a proper program.
    
    Also add text about the osd_login program command line API to:
    	Documentation/filesystems/nfs/pnfs.txt
    and documentation of the new  osd_login_prog  module parameter to:
    	Documentation/kernel-parameters.txt
    
    TODO: Add timeout option in the case osd_login program gets
                  stuck
    Signed-off-by: NSachin Bhamare <sbhamare@panasas.com>
    Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
    Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
    18d98f6c
objio_osd.c 16.9 KB