Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1df00640 authored by J. Bruce Fields's avatar J. Bruce Fields
Browse files

Merge nfs containerization work from Trond's tree

The nfs containerization work is a prerequisite for Jeff Layton's reboot
recovery rework.
parents ab4684d1 5a7c9eec
Loading
Loading
Loading
Loading
+10 −2
Original line number Original line Diff line number Diff line
@@ -102,9 +102,12 @@ X!Iinclude/linux/kobject.h
!Iinclude/linux/device.h
!Iinclude/linux/device.h
     </sect1>
     </sect1>
     <sect1><title>Device Drivers Base</title>
     <sect1><title>Device Drivers Base</title>
!Idrivers/base/init.c
!Edrivers/base/driver.c
!Edrivers/base/driver.c
!Edrivers/base/core.c
!Edrivers/base/core.c
!Edrivers/base/syscore.c
!Edrivers/base/class.c
!Edrivers/base/class.c
!Idrivers/base/node.c
!Edrivers/base/firmware_class.c
!Edrivers/base/firmware_class.c
!Edrivers/base/transport_class.c
!Edrivers/base/transport_class.c
<!-- Cannot be included, because
<!-- Cannot be included, because
@@ -113,13 +116,18 @@ X!Iinclude/linux/kobject.h
     exceed allowed 44 characters maximum
     exceed allowed 44 characters maximum
X!Edrivers/base/attribute_container.c
X!Edrivers/base/attribute_container.c
-->
-->
!Edrivers/base/sys.c
!Edrivers/base/dd.c
<!--
<!--
X!Edrivers/base/interface.c
X!Edrivers/base/interface.c
-->
-->
!Iinclude/linux/platform_device.h
!Iinclude/linux/platform_device.h
!Edrivers/base/platform.c
!Edrivers/base/platform.c
!Edrivers/base/bus.c
!Edrivers/base/bus.c
     </sect1>
     <sect1><title>Device Drivers DMA Management</title>
!Edrivers/base/dma-buf.c
!Edrivers/base/dma-coherent.c
!Edrivers/base/dma-mapping.c
     </sect1>
     </sect1>
     <sect1><title>Device Drivers Power Management</title>
     <sect1><title>Device Drivers Power Management</title>
!Edrivers/base/power/main.c
!Edrivers/base/power/main.c
@@ -219,7 +227,7 @@ X!Isound/sound_firmware.c
  <chapter id="uart16x50">
  <chapter id="uart16x50">
     <title>16x50 UART Driver</title>
     <title>16x50 UART Driver</title>
!Edrivers/tty/serial/serial_core.c
!Edrivers/tty/serial/serial_core.c
!Edrivers/tty/serial/8250.c
!Edrivers/tty/serial/8250/8250.c
  </chapter>
  </chapter>


  <chapter id="fbdev">
  <chapter id="fbdev">
+14 −6
Original line number Original line Diff line number Diff line
@@ -4,13 +4,21 @@ ID Mapper
=========
=========
Id mapper is used by NFS to translate user and group ids into names, and to
Id mapper is used by NFS to translate user and group ids into names, and to
translate user and group names into ids.  Part of this translation involves
translate user and group names into ids.  Part of this translation involves
performing an upcall to userspace to request the information.  Id mapper will
performing an upcall to userspace to request the information.  There are two
user request-key to perform this upcall and cache the result.  The program
ways NFS could obtain this information: placing a call to /sbin/request-key
/usr/sbin/nfs.idmap should be called by request-key, and will perform the
or by placing a call to the rpc.idmap daemon.
translation and initialize a key with the resulting information.

NFS will attempt to call /sbin/request-key first.  If this succeeds, the
result will be cached using the generic request-key cache.  This call should
only fail if /etc/request-key.conf is not configured for the id_resolver key
type, see the "Configuring" section below if you wish to use the request-key
method.

If the call to /sbin/request-key fails (if /etc/request-key.conf is not
configured with the id_resolver key type), then the idmapper will ask the
legacy rpc.idmap daemon for the id mapping.  This result will be stored
in a custom NFS idmap cache.


 NFS_USE_NEW_IDMAPPER must be selected when configuring the kernel to use this
 feature.


===========
===========
Configuring
Configuring
+54 −0
Original line number Original line Diff line number Diff line
@@ -53,3 +53,57 @@ lseg maintains an extra reference corresponding to the NFS_LSEG_VALID
bit which holds it in the pnfs_layout_hdr's list.  When the final lseg
bit which holds it in the pnfs_layout_hdr's list.  When the final lseg
is removed from the pnfs_layout_hdr's list, the NFS_LAYOUT_DESTROYED
is removed from the pnfs_layout_hdr's list, the NFS_LAYOUT_DESTROYED
bit is set, preventing any new lsegs from being added.
bit is set, preventing any new lsegs from being added.

layout drivers
--------------

PNFS utilizes what is called layout drivers. The STD defines 3 basic
layout types: "files" "objects" and "blocks". For each of these types
there is a layout-driver with a common function-vectors table which
are called by the nfs-client pnfs-core to implement the different layout
types.

Files-layout-driver code is in: fs/nfs/nfs4filelayout.c && nfs4filelayoutdev.c
Objects-layout-deriver code is in: fs/nfs/objlayout/.. directory
Blocks-layout-deriver code is in: fs/nfs/blocklayout/.. directory

objects-layout setup
--------------------

As part of the full STD implementation the objlayoutdriver.ko needs, at times,
to automatically login to yet undiscovered iscsi/osd devices. For this the
driver makes up-calles to a user-mode script called *osd_login*

The path_name of the script to use is by default:
	/sbin/osd_login.
This name can be overridden by the Kernel module parameter:
	objlayoutdriver.osd_login_prog

If Kernel does not find the osd_login_prog path it will zero it out
and will not attempt farther logins. An admin can then write new value
to the objlayoutdriver.osd_login_prog Kernel parameter to re-enable it.

The /sbin/osd_login is part of the nfs-utils package, and should usually
be installed on distributions that support this Kernel version.

The API to the login script is as follows:
	Usage: $0 -u <URI> -o <OSDNAME> -s <SYSTEMID>
	Options:
		-u		target uri e.g. iscsi://<ip>:<port>
				(allways exists)
				(More protocols can be defined in the future.
				 The client does not interpret this string it is
				 passed unchanged as recieved from the Server)
		-o		osdname of the requested target OSD
				(Might be empty)
				(A string which denotes the OSD name, there is a
				 limit of 64 chars on this string)
		-s 		systemid of the requested target OSD
				(Might be empty)
				(This string, if not empty is always an hex
				 representation of the 20 bytes osd_system_id)

blocks-layout setup
-------------------

TODO: Document the setup needs of the blocks layout driver
+23 −0
Original line number Original line Diff line number Diff line
@@ -1657,6 +1657,14 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
			of returning the full 64-bit number.
			of returning the full 64-bit number.
			The default is to return 64-bit inode numbers.
			The default is to return 64-bit inode numbers.


	nfs.max_session_slots=
			[NFSv4.1] Sets the maximum number of session slots
			the client will attempt to negotiate with the server.
			This limits the number of simultaneous RPC requests
			that the client can send to the NFSv4.1 server.
			Note that there is little point in setting this
			value higher than the max_tcp_slot_table_limit.

	nfs.nfs4_disable_idmapping=
	nfs.nfs4_disable_idmapping=
			[NFSv4] When set to the default of '1', this option
			[NFSv4] When set to the default of '1', this option
			ensures that both the RPC level authentication
			ensures that both the RPC level authentication
@@ -1670,6 +1678,21 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
			back to using the idmapper.
			back to using the idmapper.
			To turn off this behaviour, set the value to '0'.
			To turn off this behaviour, set the value to '0'.


	nfs.send_implementation_id =
			[NFSv4.1] Send client implementation identification
			information in exchange_id requests.
			If zero, no implementation identification information
			will be sent.
			The default is to send the implementation identification
			information.


	objlayoutdriver.osd_login_prog=
			[NFS] [OBJLAYOUT] sets the pathname to the program which
			is used to automatically discover and login into new
			osd-targets. Please see:
			Documentation/filesystems/pnfs.txt for more explanations

	nmi_debug=	[KNL,AVR32,SH] Specify one or more actions to take
	nmi_debug=	[KNL,AVR32,SH] Specify one or more actions to take
			when a NMI is triggered.
			when a NMI is triggered.
			Format: [state][,regs][,debounce][,die]
			Format: [state][,regs][,debounce][,die]
+14 −15
Original line number Original line Diff line number Diff line
@@ -159,7 +159,7 @@ S: Maintained
F:	drivers/net/ethernet/realtek/r8169.c
F:	drivers/net/ethernet/realtek/r8169.c


8250/16?50 (AND CLONE UARTS) SERIAL DRIVER
8250/16?50 (AND CLONE UARTS) SERIAL DRIVER
M:	Greg Kroah-Hartman <gregkh@suse.de>
M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
L:	linux-serial@vger.kernel.org
L:	linux-serial@vger.kernel.org
W:	http://serial.sourceforge.net
W:	http://serial.sourceforge.net
S:	Maintained
S:	Maintained
@@ -1783,9 +1783,9 @@ X: net/wireless/wext*


CHAR and MISC DRIVERS
CHAR and MISC DRIVERS
M:	Arnd Bergmann <arnd@arndb.de>
M:	Arnd Bergmann <arnd@arndb.de>
M:	Greg Kroah-Hartman <greg@kroah.com>
M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
S:	Maintained
S:	Supported
F:	drivers/char/*
F:	drivers/char/*
F:	drivers/misc/*
F:	drivers/misc/*


@@ -2320,7 +2320,7 @@ F: lib/lru_cache.c
F:	Documentation/blockdev/drbd/
F:	Documentation/blockdev/drbd/


DRIVER CORE, KOBJECTS, DEBUGFS AND SYSFS
DRIVER CORE, KOBJECTS, DEBUGFS AND SYSFS
M:	Greg Kroah-Hartman <gregkh@suse.de>
M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6.git
S:	Supported
S:	Supported
F:	Documentation/kobject.txt
F:	Documentation/kobject.txt
@@ -6276,15 +6276,15 @@ S: Maintained
F:	arch/alpha/kernel/srm_env.c
F:	arch/alpha/kernel/srm_env.c


STABLE BRANCH
STABLE BRANCH
M:	Greg Kroah-Hartman <greg@kroah.com>
M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
L:	stable@vger.kernel.org
L:	stable@vger.kernel.org
S:	Maintained
S:	Supported


STAGING SUBSYSTEM
STAGING SUBSYSTEM
M:	Greg Kroah-Hartman <gregkh@suse.de>
M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
L:	devel@driverdev.osuosl.org
L:	devel@driverdev.osuosl.org
S:	Maintained
S:	Supported
F:	drivers/staging/
F:	drivers/staging/


STAGING - AGERE HERMES II and II.5 WIRELESS DRIVERS
STAGING - AGERE HERMES II and II.5 WIRELESS DRIVERS
@@ -6669,8 +6669,8 @@ S: Maintained
K:	^Subject:.*(?i)trivial
K:	^Subject:.*(?i)trivial


TTY LAYER
TTY LAYER
M:	Greg Kroah-Hartman <gregkh@suse.de>
M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
S:	Maintained
S:	Supported
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git
F:	drivers/tty/
F:	drivers/tty/
F:	drivers/tty/serial/serial_core.c
F:	drivers/tty/serial/serial_core.c
@@ -6958,7 +6958,7 @@ S: Maintained
F:	drivers/usb/serial/digi_acceleport.c
F:	drivers/usb/serial/digi_acceleport.c


USB SERIAL DRIVER
USB SERIAL DRIVER
M:	Greg Kroah-Hartman <gregkh@suse.de>
M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
L:	linux-usb@vger.kernel.org
L:	linux-usb@vger.kernel.org
S:	Supported
S:	Supported
F:	Documentation/usb/usb-serial.txt
F:	Documentation/usb/usb-serial.txt
@@ -6973,9 +6973,8 @@ S: Maintained
F:	drivers/usb/serial/empeg.c
F:	drivers/usb/serial/empeg.c


USB SERIAL KEYSPAN DRIVER
USB SERIAL KEYSPAN DRIVER
M:	Greg Kroah-Hartman <greg@kroah.com>
M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
L:	linux-usb@vger.kernel.org
L:	linux-usb@vger.kernel.org
W:	http://www.kroah.com/linux/
S:	Maintained
S:	Maintained
F:	drivers/usb/serial/*keyspan*
F:	drivers/usb/serial/*keyspan*


@@ -7003,7 +7002,7 @@ F: Documentation/video4linux/sn9c102.txt
F:	drivers/media/video/sn9c102/
F:	drivers/media/video/sn9c102/


USB SUBSYSTEM
USB SUBSYSTEM
M:	Greg Kroah-Hartman <gregkh@suse.de>
M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
L:	linux-usb@vger.kernel.org
L:	linux-usb@vger.kernel.org
W:	http://www.linux-usb.org
W:	http://www.linux-usb.org
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6.git
@@ -7090,7 +7089,7 @@ F: fs/hppfs/


USERSPACE I/O (UIO)
USERSPACE I/O (UIO)
M:	"Hans J. Koch" <hjk@hansjkoch.de>
M:	"Hans J. Koch" <hjk@hansjkoch.de>
M:	Greg Kroah-Hartman <gregkh@suse.de>
M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
S:	Maintained
S:	Maintained
F:	Documentation/DocBook/uio-howto.tmpl
F:	Documentation/DocBook/uio-howto.tmpl
F:	drivers/uio/
F:	drivers/uio/
Loading