From 753daa182cb7f253c028b254b79dad6ddf539474 Mon Sep 17 00:00:00 2001 From: Tomohiro Kusumi Date: Mon, 14 Dec 2015 00:15:08 +0900 Subject: [PATCH] sys/vfs/hammer: Add HAMMER_ROOT_PFSID macro Explicitly show PFS#0 is root PFS. --- sbin/hammer/cmd_pfs.c | 10 +++++----- sys/vfs/hammer/hammer_disk.h | 1 + sys/vfs/hammer/hammer_pfs.c | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/sbin/hammer/cmd_pfs.c b/sbin/hammer/cmd_pfs.c index 5bd5968727..5bc884b46d 100644 --- a/sbin/hammer/cmd_pfs.c +++ b/sbin/hammer/cmd_pfs.c @@ -284,7 +284,7 @@ hammer_cmd_pseudofs_create(char **av, int ac, int is_slave) pfs.bytes = sizeof(pfsd); ioctl(fd, HAMMERIOC_GET_PSEUDOFS, &pfs); - if (pfs.pfs_id != 0) { + if (pfs.pfs_id != HAMMER_ROOT_PFSID) { fprintf(stderr, "You are attempting to access a PFS softlink " "from a PFS. It may not represent the PFS\n" @@ -357,7 +357,7 @@ hammer_cmd_pseudofs_destroy(char **av, int ac) pseudofs_usage(1); fd = getpfs(&pfs, av[0]); - if (pfs.pfs_id == 0) { + if (pfs.pfs_id == HAMMER_ROOT_PFSID) { fprintf(stderr, "You cannot destroy PFS#0\n"); exit(1); } @@ -453,7 +453,7 @@ hammer_cmd_pseudofs_upgrade(char **av, int ac) pseudofs_usage(1); fd = getpfs(&pfs, av[0]); - if (pfs.pfs_id == 0) { + if (pfs.pfs_id == HAMMER_ROOT_PFSID) { fprintf(stderr, "You cannot upgrade PFS#0" " (It should already be a master)\n"); exit(1); @@ -482,7 +482,7 @@ hammer_cmd_pseudofs_downgrade(char **av, int ac) pseudofs_usage(1); fd = getpfs(&pfs, av[0]); - if (pfs.pfs_id == 0) { + if (pfs.pfs_id == HAMMER_ROOT_PFSID) { fprintf(stderr, "You cannot downgrade PFS#0\n"); exit(1); } else if (pfs.ondisk->mirror_flags & HAMMER_PFSD_SLAVE) { @@ -516,7 +516,7 @@ hammer_cmd_pseudofs_update(char **av, int ac) if (ioctl(fd, HAMMERIOC_GET_PSEUDOFS, &pfs) == 0) { parse_pfsd_options(av + 1, ac - 1, pfs.ondisk); if ((pfs.ondisk->mirror_flags & HAMMER_PFSD_SLAVE) && - pfs.pfs_id == 0) { + pfs.pfs_id == HAMMER_ROOT_PFSID) { printf("The real mount point cannot be made a PFS " "slave, only PFS sub-directories can be made " "slaves\n"); diff --git a/sys/vfs/hammer/hammer_disk.h b/sys/vfs/hammer/hammer_disk.h index e4a53b7c2b..f98f80a47c 100644 --- a/sys/vfs/hammer/hammer_disk.h +++ b/sys/vfs/hammer/hammer_disk.h @@ -894,6 +894,7 @@ typedef struct hammer_pseudofs_data *hammer_pseudofs_data_t; #define HAMMER_MAX_PFS 65536 #define HAMMER_MAX_PFSID (HAMMER_MAX_PFS - 1) +#define HAMMER_ROOT_PFSID 0 /* * Snapshot meta-data { Objid = HAMMER_OBJID_ROOT, Key = tid, rectype = SNAPSHOT }. diff --git a/sys/vfs/hammer/hammer_pfs.c b/sys/vfs/hammer/hammer_pfs.c index 9903ee8a5c..7734a36ec7 100644 --- a/sys/vfs/hammer/hammer_pfs.c +++ b/sys/vfs/hammer/hammer_pfs.c @@ -116,7 +116,7 @@ hammer_ioc_set_pseudofs(hammer_transaction_t trans, hammer_inode_t ip, /* * Make sure a caller isn't creating a PFS from non-root PFS. */ - if (lo_to_pfs(ip->obj_localization) != 0) { + if (lo_to_pfs(ip->obj_localization) != HAMMER_ROOT_PFSID) { hmkprintf(trans->hmp, "Creating a PFS from non-root PFS is not allowed\n"); return(EINVAL); -- 2.41.0