kafs doesn't check if the cell already exists - so if you do an echo "add newcell.org 1.2.3.4" >/proc/fs/afs/cells it will try to create this cell again. kobject will also complain about a double registration. To prevent such problems, return -EEXIST in that case. --- fs/afs/cell.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/fs/afs/cell.c b/fs/afs/cell.c index 970d38f..87934b3 100644 --- a/fs/afs/cell.c +++ b/fs/afs/cell.c @@ -127,6 +127,15 @@ struct afs_cell *afs_cell_create(const char *name, char *vllist) _enter("%s,%s", name, vllist); + read_lock(&afs_cells_lock); + list_for_each_entry(cell, &afs_cells, link) { + if(!strcasecmp(cell->name, name)) { + read_unlock(&afs_cells_lock); + return ERR_PTR(-EEXIST); + } + } + read_unlock(&afs_cells_lock); + cell = afs_cell_alloc(name, vllist); if (IS_ERR(cell)) { _leave(" = %ld", PTR_ERR(cell)); -- 1.5.4.3
Attachment:
pgpeMO4QJN9KP.pgp
Description: PGP signature