]> git.baikalelectronics.ru Git - kernel.git/commit
afs: Display manually added cells in dynamic root mount
authorDavid Howells <dhowells@redhat.com>
Fri, 15 Jun 2018 14:19:22 +0000 (15:19 +0100)
committerDavid Howells <dhowells@redhat.com>
Fri, 15 Jun 2018 14:27:09 +0000 (15:27 +0100)
commit1510cf4c345a23b10f46f448ca71bce7d4facc11
treee0b6e920d546fc0dbf0d813418ad3e4b0d61eabe
parentab273ccbdc05a189e575cf8d615796e96a54d514
afs: Display manually added cells in dynamic root mount

Alter the dynroot mount so that cells created by manipulation of
/proc/fs/afs/cells and /proc/fs/afs/rootcell and by specification of a root
cell as a module parameter will cause directories for those cells to be
created in the dynamic root superblock for the network namespace[*].

To this end:

 (1) Only one dynamic root superblock is now created per network namespace
     and this is shared between all attempts to mount it.  This makes it
     easier to find the superblock to modify.

 (2) When a dynamic root superblock is created, the list of cells is walked
     and directories created for each cell already defined.

 (3) When a new cell is added, if a dynamic root superblock exists, a
     directory is created for it.

 (4) When a cell is destroyed, the directory is removed.

 (5) These directories are created by calling lookup_one_len() on the root
     dir which automatically creates them if they don't exist.

[*] Inasmuch as network namespaces are currently supported here.

Signed-off-by: David Howells <dhowells@redhat.com>
fs/afs/cell.c
fs/afs/dynroot.c
fs/afs/internal.h
fs/afs/main.c
fs/afs/super.c
fs/namei.c
include/linux/namei.h