sys/vfs/hammer: Fix and add comments on root inode
authorTomohiro Kusumi <kusumi.tomohiro@gmail.com>
Thu, 26 Feb 2015 11:25:59 +0000 (20:25 +0900)
committerTomohiro Kusumi <kusumi.tomohiro@gmail.com>
Thu, 26 Feb 2015 17:33:33 +0000 (02:33 +0900)
- hunk1 - The root inode uses HAMMER_DEF_LOCALIZATION for its
  onmemory ip(inode) localization, however the purpose of this macro
  is not documented anywhere. Make it clear by adding this comment.

- hunk2 - Show HAMMER_OBJID_ROOT is the root inode # for both real
  root inode and PFS root inodes.

- hunk3-4 - Change "stored in the root inode" to "associated with
  the root inode". PFS records are not embedded within the ondisk
  inode structure, but associated with the root inode by id.
  Commit ea434b6f uses "associated with" in its commit message.

sys/vfs/hammer/hammer_btree.h
sys/vfs/hammer/hammer_disk.h
sys/vfs/hammer/hammer_inode.c

index 60f1068..99eb17c 100644 (file)
@@ -118,6 +118,9 @@ typedef struct hammer_base_elm *hammer_base_elm_t;
  * Localization can also be used to create pseudo-filesystems within
  * a HAMMER filesystem.  Pseudo-filesystems would be suitable
  * replication targets.
+ *
+ * The root inode (not the PFS root inode but the real root) uses
+ * HAMMER_DEF_LOCALIZATION for its ip->obj_localization.
  */
 #define HAMMER_LOCALIZE_RESERVED00     0x00000000
 #define HAMMER_LOCALIZE_INODE          0x00000001
index d507314..8838d4b 100644 (file)
@@ -749,7 +749,7 @@ struct hammer_inode_data {
        offsetof(struct hammer_inode_data, mtime)
 
 #define HAMMER_INODE_DATA_VERSION      1
-#define HAMMER_OBJID_ROOT              1
+#define HAMMER_OBJID_ROOT              1       /* root inodes # */
 #define HAMMER_INODE_BASESYMLEN                24      /* see ext.symlink */
 
 /*
index 33a6a88..b3e91fc 100644 (file)
@@ -991,8 +991,8 @@ retry:
        }
 
        /*
-        * PFS records are stored in the root inode (not the PFS root inode,
-        * but the real root).  Avoid an infinite recursion if loading
+        * PFS records are associated with the root inode (not the PFS root
+        * inode, but the real root).  Avoid an infinite recursion if loading
         * the PFS for the real root.
         */
        if (localization) {
@@ -1063,6 +1063,10 @@ hammer_save_pseudofs(hammer_transaction_t trans, hammer_pseudofs_inmem_t pfsm)
        hammer_inode_t ip;
        int error;
 
+       /*
+        * PFS records are associated with the root inode (not the PFS root
+        * inode, but the real root).
+        */
        ip = hammer_get_inode(trans, NULL, HAMMER_OBJID_ROOT, HAMMER_MAX_TID,
                              HAMMER_DEF_LOCALIZATION, 0, &error);
 retry: