diff options
author | David Howells <dhowells@redhat.com> | 2018-04-06 14:17:23 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2018-04-09 21:18:58 +0100 |
commit | 37ab636880cbc95ba87a5790bee23a1c813089c6 (patch) | |
tree | 931c5387eeefbab0b326b62532644dd6a32c78f0 /fs/afs/cell.c | |
parent | 6f8880d8e68155726a2a22e8787cfebf1ffcab08 (diff) |
afs: Implement @cell substitution handling
Implement @cell substitution handling such that if @cell is seen as a name
in a dynamic root mount, then the name of the root cell for that network
namespace will be substituted for @cell during lookup.
The substitution of @cell for the current net namespace is set by writing
the cell name to /proc/fs/afs/rootcell. The value can be obtained by
reading the file.
For example:
# mount -t afs none /kafs -o dyn
# echo grand.central.org >/proc/fs/afs/rootcell
# ls /kafs/@cell
archive/ cvs/ doc/ local/ project/ service/ software/ user/ www/
# cat /proc/fs/afs/rootcell
grand.central.org
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/afs/cell.c')
-rw-r--r-- | fs/afs/cell.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/afs/cell.c b/fs/afs/cell.c index 721425b98b31..fdf4c36cff79 100644 --- a/fs/afs/cell.c +++ b/fs/afs/cell.c @@ -130,6 +130,8 @@ static struct afs_cell *afs_alloc_cell(struct afs_net *net, _leave(" = -ENAMETOOLONG"); return ERR_PTR(-ENAMETOOLONG); } + if (namelen == 5 && memcmp(name, "@cell", 5) == 0) + return ERR_PTR(-EINVAL); _enter("%*.*s,%s", namelen, namelen, name, vllist); |