=========================================================
¤³¤ì¤Ï¡¢
-Linux-2.6.31.1/Documentation/filesystems/nilfs2.txt ¤ÎÏÂÌõ¤Ç¤¹¡£
-ËÝÌõÃÄÂΡ§ JF ¥×¥í¥¸¥§¥¯¥È < http://www.linux.or.jp/JF/ >
-¹¹¿·Æü ¡§ 2009/10/13
-ËÝÌõ¼Ô ¡§ Seiji Kaneko < skaneko at mbn dot or dot jp >
+Linux-3.4.1/Documentation/filesystems/nilfs2.txt ¤ÎÏÂÌõ¤Ç¤¹¡£
+ËÝÌõÃÄÂΡ§ JF ¥×¥í¥¸¥§¥¯¥È < http://linuxjf.sourceforge.jp/ >
+¹¹¿·Æü ¡§ 2012/09/05
+ËÝÌõ¼Ô ¡§ Seiji Kaneko < skaneko at a2 dot mbn dot or dot jp >
=========================================================
NILFS2
------
#like conventional LFS, it achieves quick recovery after system
#crashes.
NILFS2 ¤ÏϢ³¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥í¥°¹½Â¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ
-¥à (LFS) ¤Ç¤¹¡£Á´¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ¹¤ë¥Ð¡¼¥¸¥ç¥óµ¡Ç½¤Ë²Ã¤¨¡¢¥æ
+¥à (LFS) ¤Ç¤¹¡£¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÁ´ÂΤËÂФ¹¤ë¥Ð¡¼¥¸¥ç¥óµ¡Ç½¤Ë²Ã¤¨¡¢¥æ
¡¼¥¶¤¬¿ôÉÃÁ°¤Ë¸í¤Ã¤Æ¾å½ñ¤¤äÇ˲õ¤·¤¿¥Õ¥¡¥¤¥ë¤Î²óÉü¤ò¹Ô¤¦¤³¤È¤¹¤é²Ä
ǽ¤Ç¤¹¡£NILFS2 ¤Ï½¾Íè¤Î LFS ¤Î¤è¤¦¤Ë°ì´ÓÀ¤òÊݤĵ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹
¤«¤é¡¢¥·¥¹¥Æ¥à¥¯¥é¥Ã¥·¥å¸å¤ÎÁÇÁᤤ²óÉü¤â¼Â¸½¤·¤Æ¤¤¤Þ¤¹¡£
#Project web page: http://www.nilfs.org/en/
#Download page: http://www.nilfs.org/en/download.html
#Git tree web page: http://www.nilfs.org/git/
-#NILFS mailing lists: http://www.nilfs.org/mailman/listinfo/users
+#List info http://vger.kernel.org/vger-lists.html#linux-nilfs
¥×¥í¥¸¥§¥¯¥È¥¦¥§¥Ö¥Ú¡¼¥¸: http://www.nilfs.org/en/
¥À¥¦¥ó¥í¡¼¥É¥Ú¡¼¥¸: http://www.nilfs.org/en/download.html
Git ¥Ä¥ê¡¼¥¦¥§¥Ö¥Ú¡¼¥¸: http://www.nilfs.org/git/
-NILFS ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È: http://www.nilfs.org/mailman/listinfo/users
+¥á¡¼¥ê¥ó¥°¥ê¥¹¥È http://vger.kernel.org/vger-lists.html#linux-nilfs
#Caveats
#=======
# - POSIX ACLs
# - quotas
# - fsck
-# - resize
# - defragmentation
- atime
- ³ÈÄ¥¥¢¥È¥ê¥Ó¥å¡¼¥È
- POSIX ACL
- ¥¯¥ª¡¼¥¿
- fsck
- - ¥ê¥µ¥¤¥º
- ¥Ç¥Õ¥é¥°
#Mount options
NILFS2 ¤Ï°Ê²¼¤Î¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£
(*) ¤Ï ɸ½àÃÍ
-#barrier=on(*) This enables/disables barriers. barrier=off disables
-# it, barrier=on enables it.
-#errors=continue(*) Keep going on a filesystem error.
-#errors=remount-ro Remount the filesystem read-only on an error.
+#barrier(*) This enables/disables the use of write barriers. This
+#nobarrier requires an IO stack which can support barriers, and
+# if nilfs gets an error on a barrier write, it will
+# disable again with a warning.
+#errors=continue Keep going on a filesystem error.
+#errors=remount-ro(*) Remount the filesystem read-only on an error.
#errors=panic Panic and halt the machine if an error occurs.
#cp=n Specify the checkpoint-number of the snapshot to be
# mounted. Checkpoints and snapshots are listed by lscp
# blocks. That means, it is guaranteed that no
# overtaking of events occurs in the recovered file
# system after a crash.
-barrier=on(*) ¥Ð¥ê¥¢¤ò͸ú²½/̵¸ú²½¤¹¤ë¡£barrier=off ¤Ï̵¸ú²½
- ¤·¡¢barrier=on ¤Ï͸ú²½¤¹¤ë¡£
-errors=continue(*) ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¨¥é¡¼»þ¤Ë½èÍý¤ò³¹Ô¤¹¤ë¡£
-errors=remount-ro ¥¨¥é¡¼»þ¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥ê¡¼¥É¥ª¥ó¥ê¡¼¤ÇºÆ
+#norecovery Disable recovery of the filesystem on mount.
+# This disables every write access on the device for
+# read-only mounts or snapshots. This option will fail
+# for r/w mounts on an unclean volume.
+barrier(*) ½ñ¤¹þ¤ß¥Ð¥ê¥¢¤ò͸ú²½/̵¸ú²½¤¹¤ë¡£¤³¤Îµ¡Ç½¤Ë¤Ï
+nobarrier ½ñ¤¹þ¤ß¥Ð¥ê¥¢¤ò¥µ¥Ý¡¼¥È¤·¤¿ I/O ¥¹¥¿¥Ã¥¯¤¬É¬Íפǡ¢
+ ¥Ð¥ê¥¢ÉÕ¤½ñ¤¹þ¤ß¤Ç nilfs ¤¬¥¨¥é¡¼Êó¹ð¤ò¼õ¤±¤¿¾ì¹ç
+ ¤Ï·Ù¹ð¥á¥Ã¥»¡¼¥¸¤ò½Ð¤·¤Æ½ñ¤¤³¤ß¥Ð¥ê¥¢¤¬Ìµ¸ú²½¤µ¤ì
+ ¤ë¡£
+errors=continue ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¨¥é¡¼»þ¤Ë½èÍý¤ò³¹Ô¤¹¤ë¡£
+errors=remount-ro(*) ¥¨¥é¡¼»þ¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥ê¡¼¥É¥ª¥ó¥ê¡¼¤ÇºÆ
¥Þ¥¦¥ó¥È¤¹¤ë¡£
errors=panic ¥¨¥é¡¼»þ¤Ë¥Ñ¥Ë¥Ã¥¯¤È¤·¡¢¥Þ¥·¥óÆ°ºî¤òÄä»ß¤¹¤ë¡£
cp=n ¥Þ¥¦¥ó¥ÈÂоݤȤ¹¤ë¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Î¥Á¥§¥Ã¥¯¥Ý¥¤
¥ó¥ÈÈÖ¹æ¤ò»ØÄꤹ¤ë¡£¥Á¥§¥Ã¥¯¥Ý¥¤¥ó¥È¤È¥¹¥Ê¥Ã¥×¥·
- ¥ç¥Ã¥È¤Ï lscp ¥³¥Þ¥ó¥É¤Ç°ìÍ÷²Äǽ¤Ç¤¹¡£¥¹¥Ê¥Ã¥×¥·
+ ¥ç¥Ã¥È¤Ï lscp ¥³¥Þ¥ó¥É¤Ç°ìÍ÷²Äǽ¤Ç¤¢¤ë¡£¥¹¥Ê¥Ã¥×¥·
¥ç¥Ã¥È¤È¤·¤Æ¥Þ¡¼¥¯¤·¤¿¥Á¥§¥Ã¥¯¥Ý¥¤¥ó¥È¤Î¤ß¤¬¤³¤Î
- ¥ª¥×¥·¥ç¥ó¤Ç¥Þ¥¦¥ó¥È²Äǽ¤Ç¤¹¡£¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Ï
- Æɤ߽Ф·¤Î¤ß¤Ç¤¹¤«¤é¡¢Æɤ߽Ф·¤Î¤ß¤Î¥Þ¥¦¥ó¥È¥ª¥×
- ¥·¥ç¥ó»ØÄê¤ò¹ç¤ï¤»¤Æ»Ø¼¨¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
+ ¥ª¥×¥·¥ç¥ó¤Ç¥Þ¥¦¥ó¥È²Äǽ¤Ç¤¢¤ë¡£¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Ï
+ Æɤ߽Ф·¤Î¤ß¤Î¤¿¤á¡¢Æɤ߽Ф·¤Î¤ß¤Î¥Þ¥¦¥ó¥È¥ª¥×
+ ¥·¥ç¥ó»ØÄê¤ò¹ç¤ï¤»¤Æ»Ø¼¨¤¹¤ëɬÍפ¬¤¢¤ë¡£
order=relaxed(*) ¥á¥¿¥Ç¡¼¥¿Êѹ¹¤òȼ¤ï¤Ê¤¤¾ì¹ç¡¢Êѹ¹¤µ¤ì¤¿¥Ç¡¼¥¿¥Ö
¥í¥Ã¥¯¤ò¥Á¥§¥Ã¥¯¥Ý¥¤¥ó¥È¤òºîÀ®¤¹¤ë¤³¤È¤Ê¤·¤Ë¥Ç¥£
¥¹¥¯¤Ë½ñ¤¹þ¤à´ËϤµ¤ì¤¿½ç½øÀ©¸æ¼ê½ç¤òºÎÍѤ¹¤ë¡£
- ¤³¤Î¥â¡¼¥É¤Ï¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤Î¥¢¥È¥ß¥Ã¥¯½èÍýÀ¤¬°Ý
- »ý¤µ¤ì¤Æ¤¤¤ëÅÀ¤ò½ü¤¤¤Æ¤Ï ext3 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î
- ordered ¥â¡¼¥É¤ËÁêÅö¤·¤Þ¤¹¡£¤³¤Î¥â¡¼¥É¤Ë¤è¤ê¡¢¾å
- ½ñ¤»þ¤ÎƱ´ü½ñ¤¹þ¤ßÀǽ¤¬¸þ¾å¤·¤Þ¤¹¡£
+ ¤³¤Î¥â¡¼¥É¤Ï¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤Î¹¹¿·¤Î¥¢¥È¥ß¥Ã¥¯½èÍýÀ
+ ¤¬°Ý»ý¤µ¤ì¤Æ¤¤¤ëÅÀ¤ò½ü¤¤¤Æ¤Ï ext3 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î
+ ordered ¥â¡¼¥É¤ËÁêÅö¤¹¤ë¡£¤³¤Î¥â¡¼¥É¤Ë¤è¤ê¡¢¾å
+ ½ñ¤»þ¤ÎƱ´ü½ñ¤¹þ¤ßÀǽ¤¬¸þ¾å¤¹¤ë¡£
order=strict ¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤Ø¤Î¾å½ñ¤¤ò´Þ¤àÁ´¤Æ¤Î¥Õ¥¡¥¤¥ëÁàºî
¤Î½ç½øÀ©¸æ¤ò¡¢½ç½ø¤É¤ª¤ê¤Ë¸·Ì©¤Ë¹Ô¤¦½ç½øÀ©¸æ¼ê½ç
¤òºÎÍѤ¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¥¯¥é¥Ã¥·¥å¸å¤Î²óÉü¤µ¤ì¤¿
¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥¤¥Ù¥ó¥È¤ÎÄɤ¤È´¤¤¬È¯À¸¤·¤Æ¤¤
- ¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤Þ¤¹¡£
+ ¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤ë¡£
+norecovery ¥Þ¥¦¥ó¥È»þ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥ê¥«¥Ð¥ê¤ò̵¸ú²½¤¹¤ë¡£
+ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Æɤ߽Ф·ÀìÍѤΥޥ¦¥ó¥È¤ª¤è¤Ó¥¹¥Ê
+ ¥Ã¥×¥·¥ç¥Ã¥È¤Ç¤Î¡¢¤¹¤Ù¤Æ¤Î¥Ç¥Ð¥¤¥¹¤Î½ñ¤¹þ¤ß¤òÍ޻ߤ¹¤ë¡£
+ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥¯¥ê¡¼¥ó¤Ç¤Ê¤¤Æɤ߽ñ¤²Äǽ¤Ê¥Þ¥¦¥ó
+ ¥È¤ËÂФ·¤Æ»ØÄꤷ¤¿¾ì¹ç¡¢¼ºÇÔ¤¹¤ë¡£
+#discard This enables/disables the use of discard/TRIM commands.
+#nodiscard(*) The discard/TRIM commands are sent to the underlying
+# block device when blocks are freed. This is useful
+# for SSD devices and sparse/thinly-provisioned LUNs.
+discard discard/TRIM ¥³¥Þ¥ó¥É¤ÎÍøÍѤò͸ú²½/̵¸ú²½¤¹¤ë¡£
+nodiscard(*) discard/TRIM ¥³¥Þ¥ó¥É¤Ï¡¢¥Ö¥í¥Ã¥¯¤Î³«Êü»þ¡¢²¼°Ì¥Ö¥í
+ ¥Ã¥¯¤ËÂФ·¤Æȯ¹Ô¤µ¤ì¤ë¡£¤³¤ì¤Ï SSD ¤ä¥¹¥Ñ¡¼¥¹¥Õ¥¡¥¤
+ ¥ë/¥·¥ó¥×¥í¥Ó¥¸¥ç¥Ë¥ó¥°¤òÍѤ¤¤Æ¤¤¤ë LUN ¤Çͱפʥª
+ ¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£
#NILFS2 usage
#============
#Then, the cleaner daemon is automatically shut down by the umount
#helper program (umount.nilfs2).
¤½¤Î¸å¡¢umount ¥Ø¥ë¥Ñ¡¼¥×¥í¥°¥é¥à (umount.nilfs2) ¤Ë¤è¤ê¥¯¥ê¡¼¥Ê¥Ç¡¼¥â
-¥ó¤¬¼«Æ°Åª¤Ë¥·¥ã¥Ã¥È¥À¥¦¥ó¤ò¹Ô¤¤¤Þ¤¹¡£
+¥ó¤¬¼«Æ°Åª¤Ë¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤Þ¤¹¡£
#Disk format
#===========
# .______________________________.
# | Summary | Payload blocks |SR|
# |_blocks__|_________________|__|
- ________________________________________________________
+ ___________________________________________________________
| |SB| |¥»¥°¥á¥ó¥È|¥»¥°¥á¥ó¥È|¥»¥°¥á¥ó¥È| ... |¥»¥°¥á¥ó¥È| |
- |_|__|_|____0____|____1____|____2_____|_____|____N____|_|
+ |_|__|_|____0_____|____1__+__|____2_____|_____|____N__+__|_|
0 +1K +4K +8M +16M +24M +(8MB x N)
- . . (Typical offsets for 4KB-block)
+ . . (4KB-¥Ö¥í¥Ã¥¯¤Î¾ì¹ç¤ÎÄ̾ï¤Î¥ª¥Õ¥»¥Ã¥È)
. .
- .______________________.
+ ._______________________
| ¥í¥°| ¥í¥°|... | ¥í¥°|
|__1__|__2__|____|__m__|
. .
. .
. .
- .______________________________.
+ .________________________________.
|¥µ¥Þ¥ê¾ðÊó| ¥Ú¥¤¥í¡¼¥É |SR|
|_¥Ö¥í¥Ã¥¯_|__¥Ö¥í¥Ã¥¯_______|__|
# _______________________________________________________________
# | Data blocks | B-tree blocks | Data blocks | B-tree blocks | ...
# _|_____________|_______________|_____________|_______________|_
- |<--- File-A --->|<--- File-B --->|
- _______________________________________________________________
- | ¥Ç¡¼¥¿ | B-tree | ¥Ç¡¼¥¿ | B-tree | ...
+ |<--- ¥Õ¥¡¥¤¥ë-A --->|<--- ¥Õ¥¡¥¤¥ë-B --->|
+ _________________________________________________________________
+ | ¥Ç¡¼¥¿ | B-tree | ¥Ç¡¼¥¿ | B-tree | ...
|__¥Ö¥í¥Ã¥¯_____|___¥Ö¥í¥Ã¥¯_____|__¥Ö¥í¥Ã¥¯ ___|___¥Ö¥í¥Ã¥¯____|_
#and several meta data files. The mata data files are the files used
#to maintain file system meta data. The current version of NILFS2 uses
#the following meta data files:
-¥í¥°¤Ë¤Ï°ìÈÌ¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¤È¥ê¥Õ¥¡¥¤¥ë¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¥Õ¥¡¥¤¥ë
+¥í¥°¤Ë¤Ï°ìÈÌ¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¥Õ¥¡¥¤¥ë
¤È´ö¼ï¤«¤Î¥á¥¿¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Þ¤¹¡£¥á¥¿¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Ï¥Õ¥¡¥¤¥ë
¥·¥¹¥Æ¥à¥á¥¿¥Ç¡¼¥¿¤ò°Ý»ý´ÉÍý¤¹¤ë¤¿¤á¤Î¥Õ¥¡¥¤¥ë¤Ç¤¹¡£¸½ºß¤ÎÈǤΠNILFS2
¤Ç¤Ï°Ê²¼¤Î¥á¥¿¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£
2) Checkpoint ¥Õ¥¡¥¤¥ë (cpfile) -- ¥Á¥§¥Ã¥¯¥Ý¥¤¥ó¥È¤ò³ÊǼ¤·¤Þ¤¹
3) Segment usage ¥Õ¥¡¥¤¥ë (sufile) -- ¥»¥°¥á¥ó¥È¤Î³ä¤êÅö¤Æ¾õ¶·¤ò³ÊǼ
¤·¤Þ¤¹
- 4) ¥Ç¡¼¥¿¥¢¥É¥ì¥¹ÊÑ´¹¥Õ¥¡¥¤¥ë -- ²¾ÁÛ¥Ö¥í¥Ã¥¯ÈÖ¹æ¤ÈÄ̾ï¤Î¥Ö¥í¥Ã
- (DAT) ¥¯ÈÖ¹æ¤ò¥Þ¥Ã¥×¤·¤Þ¤¹¡£¤³¤Î¥Õ¥¡
+ 4) ¥Ç¡¼¥¿¥¢¥É¥ì¥¹ÊÑ´¹¥Õ¥¡¥¤¥ë -- ²¾ÁÛ¥Ö¥í¥Ã¥¯ÈÖ¹æ¤ÈÄ̾ï¤Î¥Ö¥í¥Ã
+ (DAT) ¥¯ÈÖ¹æ¤ò¥Þ¥Ã¥×¤·¤Þ¤¹¡£¤³¤Î¥Õ¥¡
¥¤¥ë¤Ï¥Ç¥£¥¹¥¯¾å¤Î¥Ö¥í¥Ã¥¯¤òºÆ
ÇÛÃÖ²Äǽ¤Ë¤·¤Þ¤¹¡£
# _________________________________________________________________________
# | Summary | regular file | file | ... | ifile | cpfile | sufile | DAT |SR|
# |_blocks__|_or_directory_|_______|_____|_______|________|________|_____|__|
- _______________________________________________________________________________
- |¥µ¥Þ¥ê¾ðÊó| Ä̾ï¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï | file | ... | ifile | cpfile | sufile | DAT |SR|
- |_¥Ö¥í¥Ã¥¯_|_¥Ç¥£¥ì¥¯¥È¥ê_______|_______|_____|_______|________|________|_____|__|
+ _____________________________________________________________________________________
+ |¥µ¥Þ¥ê¾ðÊó| Ä̾ï¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï | ¥Õ¥¡¥¤¥ë | ... | ifile | cpfile | sufile | DAT |SR|
+ |_¥Ö¥í¥Ã¥¯_|_¥Ç¥£¥ì¥¯¥È¥ê_______|___________|_____|_______|________|________|_____|__|
#To stride over segment boundaries, this sequence of files may be split
#into multiple logs. The sequence of logs that should be treated as
#summary. The recovery code of nilfs2 looks this boundary information
#to ensure atomicity of updates.
¥»¥°¥á¥ó¥È¶³¦¤ò¤Þ¤¿¤°¤¿¤á¤Ë¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥·¡¼¥±¥ó¥¹¤ÏÊ£¿ô¤Î¥í¥°¤Ëʬ
-³ä²Äǽ¤Ç¤¹¡£¥í¥°¤Î¥·¡¼¥±¥ó¥¹¤ÏÏÀÍýŪ¤Ë¤Ï°ì¤Ä¤Î¥í¥°¤È¤·¤Æ°·¤ï¤ì¡¢¥»¥°¥á
+³ä²Äǽ¤Ç¤¹¡£°ìÏ¢¤Î¥í¥°¤ÏÏÀÍýŪ¤Ë¤Ï°ì¤Ä¤Î¥í¥°¤È¤·¤Æ°·¤ï¤ì¡¢¥»¥°¥á
¥ó¥È¥µ¥Þ¥êÆâ¤Ç¥Þ¡¼¥¯¤µ¤ì¤¿¥Õ¥é¥°¤Çʬ³ä¤µ¤ì¤Þ¤¹¡£nilfs2 ¤Î¥ê¥«¥Ð¥ê¥³¡¼¥É
¤Ï¤³¤Î¶³¦¾ðÊó¤ò¸«¤Æ¹¹¿·¤Î¥¢¥È¥ß¥Ã¥¯À¤òÊݾڤ·¤Þ¤¹¡£
|-- sufile
`-- cpfile
|-- ifile (cno=c1)
- |-- ifile (cno=c2) ---- file (ino=i1)
- : : |-- file (ino=i2)
- `-- ifile (cno=xx) |-- file (ino=i3)
+ |-- ifile (cno=c2) ---- ¥Õ¥¡¥¤¥ë (ino=i1)
+ : : |-- ¥Õ¥¡¥¤¥ë (ino=i2)
+ `-- ifile (cno=xx) |-- ¥Õ¥¡¥¤¥ë (ino=i3)
: :
- `-- file (ino=yy)
+ `-- ¥Õ¥¡¥¤¥ë (ino=yy)
( Ä̾ï¤Î¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥·
¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ )
#For detail on the format of each file, please see include/linux/nilfs2_fs.h.
³Æ¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢include/linux/nilfs2_fs.h ¤ò
»²¾È¤¯¤À¤µ¤¤¡£
+