PERFORCE change 163613 for review
Aditya Sarawgi
truncs at FreeBSD.org
Fri Jun 5 22:06:37 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=163613
Change 163613 by truncs at aditya on 2009/06/05 22:06:31
- Fixed typos
- Removed ext2_fs_sb.h, it is not needed
- Fixed other bugs related to the new in-memory structure
Affected files ...
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/COPYRIGHT.INFO#5 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#4 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_balloc.c#3 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_bitops.h#3 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_bmap.c#3 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_extern.h#3 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#7 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#3 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode_cnv.c#4 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_balloc.c#4 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#4 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_lookup.c#4 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_mount.h#4 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_readwrite.c#4 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_subr.c#4 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#5 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vnops.c#7 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#4 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/i386-bitops.h#3 edit
.. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/inode.h#4 edit
Differences ...
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/COPYRIGHT.INFO#5 (text+ko) ====
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_alloc.c#4 (text+ko) ====
@@ -47,7 +47,6 @@
#include <gnu/fs/ext2fs/inode.h>
#include <gnu/fs/ext2fs/ext2_mount.h>
#include <gnu/fs/ext2fs/ext2_fs.h>
-#include <gnu/fs/ext2fs/ext2_fs_sb.h>
#include <gnu/fs/ext2fs/fs.h>
#include <gnu/fs/ext2fs/ext2_extern.h>
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_balloc.c#3 (text+ko) ====
@@ -46,7 +46,6 @@
#include <gnu/fs/ext2fs/inode.h>
#include <gnu/fs/ext2fs/ext2_fs.h>
-#include <gnu/fs/ext2fs/ext2_fs_sb.h>
#include <gnu/fs/ext2fs/fs.h>
#include <gnu/fs/ext2fs/ext2_extern.h>
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_bitops.h#3 (text+ko) ====
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_bmap.c#3 (text+ko) ====
@@ -47,7 +47,6 @@
#include <gnu/fs/ext2fs/inode.h>
#include <gnu/fs/ext2fs/ext2_fs.h>
-#include <gnu/fs/ext2fs/ext2_fs_sb.h>
#include <gnu/fs/ext2fs/ext2_mount.h>
#include <gnu/fs/ext2fs/ext2_extern.h>
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_extern.h#3 (text+ko) ====
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h#7 (text+ko) ====
@@ -52,14 +52,12 @@
#define umode_t mode_t
#define loff_t off_t
->>>> ORIGINAL //depot/vendor/freebsd/src/sys/gnu/fs/ext2fs/ext2_fs.h#3
-==== THEIRS //depot/vendor/freebsd/src/sys/gnu/fs/ext2fs/ext2_fs.h#4
#define cpu_to_le32(x) htole32(x)
-==== YOURS //aditya/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h
+
#define MAXMNTLEN 512
#define EXT2_MAX_GROUP_LOADED 8
-<<<<
+#define buffer_head buf
/*
* The second extended filesystem constants/structures
*/
@@ -141,21 +139,21 @@
#define EXT2_MAX_BLOCK_SIZE 4096
#define EXT2_MIN_BLOCK_LOG_SIZE 10
#if defined(__KERNEL__) || defined(_KERNEL)
-# define EXT2_BLOCK_SIZE(s) ((s)->s_blocksize)
+# define EXT2_BLOCK_SIZE(s) ((s)->e2fs_bsize)
#else
# define EXT2_BLOCK_SIZE(s) (EXT2_MIN_BLOCK_SIZE << (s)->s_log_block_size)
#endif
#define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32))
#if defined(__KERNEL__) || defined(_KERNEL)
-# define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_blocksize_bits)
+# define EXT2_BLOCK_SIZE_BITS(s) ((s)->e2fs_blocksize_bits)
#else
# define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10)
#endif
#if defined(__KERNEL__) || defined(_KERNEL)
#define EXT2_ADDR_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_addr_per_block_bits)
-#define EXT2_INODE_SIZE(s) (EXT2_SB(s)->s_inode_size)
-#define EXT2_FIRST_INO(s) (EXT2_SB(s)->s_first_ino)
-#define EXT2_INODES_PER_BLOCK(s) ((s)->s_inodes_per_block)
+#define EXT2_INODE_SIZE(s) (EXT2_SB(s)->e2fs_isize)
+#define EXT2_FIRST_INO(s) (EXT2_SB(s)->e2fs_first_inode)
+#define EXT2_INODES_PER_BLOCK(s) ((s)->e2fs_ipb)
#else
#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
EXT2_GOOD_OLD_INODE_SIZE : \
@@ -172,8 +170,8 @@
#define EXT2_MAX_FRAG_SIZE 4096
#define EXT2_MIN_FRAG_LOG_SIZE 10
#if defined(__KERNEL__) || defined(_KERNEL)
-# define EXT2_FRAG_SIZE(s) (EXT2_SB(s)->s_frag_size)
-# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_SB(s)->s_frags_per_block)
+# define EXT2_FRAG_SIZE(s) (EXT2_SB(s)->e2fs_fsize)
+# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_SB(s)->e2fs_fpb)
#else
# define EXT2_FRAG_SIZE(s) (EXT2_MIN_FRAG_SIZE << (s)->s_log_frag_size)
# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_FRAG_SIZE(s))
@@ -220,14 +218,14 @@
* Macro-instructions used to manage group descriptors
*/
#if defined(__KERNEL__) || defined(_KERNEL)
-# define EXT2_BLOCKS_PER_GROUP(s) (EXT2_SB(s)->s_blocks_per_group)
-# define EXT2_DESC_PER_BLOCK(s) (EXT2_SB(s)->s_desc_per_block)
-# define EXT2_INODES_PER_GROUP(s) (EXT2_SB(s)->s_inodes_per_group)
+# define EXT2_BLOCKS_PER_GROUP(s) (EXT2_SB(s)->e2fs_bpg)
+# define EXT2_DESC_PER_BLOCK(s) (EXT2_SB(s)->e2fs_descpb)
+# define EXT2_INODES_PER_GROUP(s) (EXT2_SB(s)->e2fs_ipg)
# define EXT2_DESC_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_desc_per_block_bits)
#else
-# define EXT2_BLOCKS_PER_GROUP(s) ((s)->s_blocks_per_group)
+# define EXT2_BLOCKS_PER_GROUP(s) ((s)->e2fs_bpg)
# define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group_desc))
-# define EXT2_INODES_PER_GROUP(s) ((s)->s_inodes_per_group)
+# define EXT2_INODES_PER_GROUP(s) ((s)->s_ipg)
#endif
/*
@@ -373,7 +371,7 @@
#define clear_opt(o, opt) o &= ~EXT2_MOUNT_##opt
#define set_opt(o, opt) o |= EXT2_MOUNT_##opt
-#define test_opt(sb, opt) (EXT2_SB(sb)->s_mount_opt & \
+#define test_opt(sb, opt) (EXT2_SB(sb)->e2fs_mount_opt & \
EXT2_MOUNT_##opt)
/*
* Maximal mount counts between two filesystem checks
@@ -451,7 +449,7 @@
__u32 s_reserved[204]; /* Padding to the end of the block */
};
->>>> ORIGINAL //depot/vendor/freebsd/src/sys/gnu/fs/ext2fs/ext2_fs.h#3
+
#ifdef __KERNEL__
#define EXT2_SB(sb) (&((sb)->u.ext2_sb))
#else
@@ -461,8 +459,8 @@
#define EXT2_SB(sb) (sb)
#endif
-==== THEIRS //depot/vendor/freebsd/src/sys/gnu/fs/ext2fs/ext2_fs.h#4
-==== YOURS //aditya/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_fs.h
+
+
/*
* In-Memory Superblock
*/
@@ -478,8 +476,8 @@
uint32_t e2fs_bshift; /* calc of logical block no */
int32_t e2fs_bmask; /* calc of block offset */
int32_t e2fs_bpg; /* Number of blocks per group */
- int64_t e2fs_qmask; /* = s_blocksize -1 */
- uint32_t e2fs_fstodb; /* Shift to get disk block */
+ int64_t e2fs_qbmask; /* = s_blocksize -1 */
+ uint32_t e2fs_fsbtodb; /* Shift to get disk block */
uint32_t e2fs_ipg; /* Number of inodes per group */
uint32_t e2fs_ipb; /* Number of inodes per block */
uint32_t e2fs_itpg; /* Number of inode table per group */
@@ -501,7 +499,7 @@
uint32_t e2fs_mount_opt;
uint32_t e2fs_blocksize_bits;
char e2fs_wasvalid; /* valid at mount time */
- off_t maxfilesize;
+ off_t e2fs_maxfilesize;
};
@@ -514,7 +512,7 @@
#define EXT2_SB(sb) (sb)
#endif
-<<<<
+
/*
* Codes for operating systems
*/
@@ -540,11 +538,11 @@
*/
#define EXT2_HAS_COMPAT_FEATURE(sb,mask) \
- ( EXT2_SB(sb)->s_es->s_feature_compat & cpu_to_le32(mask) )
+ ( EXT2_SB(sb)->e2fs->s_feature_compat & cpu_to_le32(mask) )
#define EXT2_HAS_RO_COMPAT_FEATURE(sb,mask) \
- ( EXT2_SB(sb)->s_es->s_feature_ro_compat & cpu_to_le32(mask) )
+ ( EXT2_SB(sb)->e2fs->s_feature_ro_compat & cpu_to_le32(mask) )
#define EXT2_HAS_INCOMPAT_FEATURE(sb,mask) \
- ( EXT2_SB(sb)->s_es->s_feature_incompat & cpu_to_le32(mask) )
+ ( EXT2_SB(sb)->e2fs->s_feature_incompat & cpu_to_le32(mask) )
#define EXT2_FEATURE_COMPAT_DIR_PREALLOC 0x0001
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#3 (text+ko) ====
@@ -50,7 +50,6 @@
#include <gnu/fs/ext2fs/inode.h>
#include <gnu/fs/ext2fs/ext2_mount.h>
#include <gnu/fs/ext2fs/ext2_fs.h>
-#include <gnu/fs/ext2fs/ext2_fs_sb.h>
#include <gnu/fs/ext2fs/fs.h>
#include <gnu/fs/ext2fs/ext2_extern.h>
@@ -264,7 +263,7 @@
blocksreleased += count;
if (lastiblock[level] < 0) {
oip->i_ib[level] = 0;
- ext2_blkfree(oip, bn, fs->s_frag_size);
+ ext2_blkfree(oip, bn, fs->e2fs_fsize);
blocksreleased += nblocks;
}
}
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode_cnv.c#4 (text+ko) ====
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_balloc.c#4 (text+ko) ====
@@ -53,7 +53,6 @@
#include <gnu/fs/ext2fs/ext2_mount.h>
#include <gnu/fs/ext2fs/ext2_extern.h>
#include <gnu/fs/ext2fs/ext2_fs.h>
-#include <gnu/fs/ext2fs/ext2_fs_sb.h>
#include <gnu/fs/ext2fs/fs.h>
#ifdef __i386__
@@ -111,7 +110,7 @@
if (block_group >= sb->e2fs_gcount)
panic ( "load_block_bitmap: "
"block_group >= groups_count - "
- "block_group = %d, groups_count = %lu",
+ "block_group = %d, groups_count = %d",
block_group, sb->e2fs_gcount);
if (sb->e2fs_gcount <= EXT2_MAX_GROUP_LOADED) {
@@ -222,9 +221,9 @@
(in_range (gdp->bg_block_bitmap, block, count) ||
in_range (gdp->bg_inode_bitmap, block, count) ||
in_range (block, gdp->bg_inode_table,
- sb->s_itb_per_group) ||
+ sb->e2fs_itpg) ||
in_range (block + count - 1, gdp->bg_inode_table,
- sb->s_itb_per_group)))
+ sb->e2fs_itpg)))
panic ( "ext2_free_blocks: "
"Freeing blocks in system zones - "
"Block = %lu, count = %lu",
@@ -406,7 +405,7 @@
if (/* test_opt (sb, CHECK_STRICT) && we are always strict. */
(tmp == gdp->bg_block_bitmap ||
tmp == gdp->bg_inode_bitmap ||
- in_range (tmp, gdp->bg_inode_table, sb->s_itb_per_group)))
+ in_range (tmp, gdp->bg_inode_table, sb->e2fs_itpg)))
panic ( "ext2_new_block: "
"Allocating block in system zone - "
"%dth block = %u in group %u", j, tmp, i);
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#4 (text+ko) ====
@@ -54,7 +54,6 @@
#include <gnu/fs/ext2fs/ext2_mount.h>
#include <gnu/fs/ext2fs/ext2_extern.h>
#include <gnu/fs/ext2fs/ext2_fs.h>
-#include <gnu/fs/ext2fs/ext2_fs_sb.h>
#include <gnu/fs/ext2fs/fs.h>
#include <sys/stat.h>
@@ -87,7 +86,7 @@
if (block_group >= sb->e2fs_gcount)
panic ("get_group_desc: "
"block_group >= groups_count - "
- "block_group = %d, groups_count = %lu",
+ "block_group = %d, groups_count = %d",
block_group, sb->e2fs_gcount);
group_desc = block_group / EXT2_DESC_PER_BLOCK(sb);
@@ -149,7 +148,7 @@
if (block_group >= sb->e2fs_gcount)
panic ("load_inode_bitmap:"
"block_group >= groups_count - "
- "block_group = %d, groups_count = %lu",
+ "block_group = %d, groups_count = %d",
block_group, sb->e2fs_gcount);
if (sb->e2fs_lib > 0 &&
sb->e2fs_ibn[0] == block_group)
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_lookup.c#4 (text+ko) ====
@@ -59,7 +59,6 @@
#include <gnu/fs/ext2fs/ext2_mount.h>
#include <gnu/fs/ext2fs/ext2_extern.h>
#include <gnu/fs/ext2fs/ext2_fs.h>
-#include <gnu/fs/ext2fs/ext2_fs_sb.h>
#ifdef DIAGNOSTIC
static int dirchk = 1;
@@ -150,7 +149,7 @@
struct uio auio;
struct iovec aiov;
caddr_t dirbuf;
- int DIRBLKSIZ = VTOI(ap->a_vp)->i_e2fs->s_blocksize;
+ int DIRBLKSIZ = VTOI(ap->a_vp)->i_e2fs->e2fs_bsize;
int readcnt;
off_t startoffset = uio->uio_offset;
@@ -321,7 +320,7 @@
int nameiop = cnp->cn_nameiop;
ino_t saved_ino;
- int DIRBLKSIZ = VTOI(ap->a_dvp)->i_e2fs->s_blocksize;
+ int DIRBLKSIZ = VTOI(ap->a_dvp)->i_e2fs->e2fs_bsize;
bp = NULL;
slotoffset = -1;
@@ -713,7 +712,7 @@
struct ext2_dir_entry_2 *de;
int entryoffsetinblock;
{
- int DIRBLKSIZ = VTOI(dp)->i_e2fs->s_blocksize;
+ int DIRBLKSIZ = VTOI(dp)->i_e2fs->e2fs_bsize;
char * error_msg = NULL;
@@ -762,7 +761,7 @@
u_int dsize;
int error, loc, newentrysize, spacefree;
char *dirbuf;
- int DIRBLKSIZ = ip->i_e2fs->s_blocksize;
+ int DIRBLKSIZ = ip->i_e2fs->e2fs_bsize;
#ifdef DIAGNOSTIC
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_mount.h#4 (text+ko) ====
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_readwrite.c#4 (text+ko) ====
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_subr.c#4 (text+ko) ====
@@ -48,7 +48,7 @@
#include <gnu/fs/ext2fs/inode.h>
#include <gnu/fs/ext2fs/ext2_extern.h>
-#include <gnu/fs/ext2fs/ext2_fs_sb.h>
+#include <gnu/fs/ext2fs/ext2_fs.h>
#include <gnu/fs/ext2fs/fs.h>
#ifdef KDB
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#5 (text+ko) ====
@@ -78,7 +78,6 @@
#include <gnu/fs/ext2fs/fs.h>
#include <gnu/fs/ext2fs/ext2_extern.h>
-#include <gnu/fs/ext2fs/ext2_fs_sb.h>
#include <gnu/fs/ext2fs/ext2_fs.h>
static int ext2_flushfiles(struct mount *mp, int flags, struct thread *td);
@@ -176,7 +175,7 @@
fs->e2fs->s_state |= EXT2_VALID_FS;
ext2_sbupdate(ump, MNT_WAIT);
}
- fs->s_rd_only = 1;
+ fs->e2fs_ronly = 1;
vfs_flagopt(opts, "ro", &mp->mnt_flag, MNT_RDONLY);
DROP_GIANT();
g_topology_lock();
@@ -189,7 +188,7 @@
if (error)
return (error);
devvp = ump->um_devvp;
- if (fs->s_rd_only && !vfs_flagopt(opts, "ro", NULL, 0)) {
+ if (fs->e2fs_ronly && !vfs_flagopt(opts, "ro", NULL, 0)) {
if (ext2_check_sb_compat(fs->e2fs, devvp->v_rdev, 0))
return (EPERM);
@@ -334,7 +333,7 @@
return (0);
}
if (gdp->bg_inode_table < block ||
- gdp->bg_inode_table + sb->s_itb_per_group >=
+ gdp->bg_inode_table + sb->e2fs_itpg >=
block + EXT2_BLOCKS_PER_GROUP(sb)) {
printf ("ext2_check_descriptors: "
"Inode table for group %d"
@@ -388,7 +387,7 @@
fs->e2fs_bsize = EXT2_MIN_BLOCK_SIZE << es->s_log_block_size;
fs->e2fs_bshift = EXT2_MIN_BLOCK_LOG_SIZE + es->s_log_block_size;
fs->e2fs_fsbtodb = es->s_log_block_size + 1;
- fs->e2fs_qbmask = fs->s_blocksize - 1;
+ fs->e2fs_qbmask = fs->e2fs_bsize - 1;
fs->e2fs_blocksize_bits = es->s_log_block_size + 10;
fs->e2fs_fsize = EXT2_MIN_FRAG_SIZE << es->s_log_frag_size;
if (fs->e2fs_fsize)
@@ -415,8 +414,8 @@
}
}
fs->e2fs_ipb = fs->e2fs_bsize / EXT2_INODE_SIZE(fs);
- fs->e2fs_itbg = fs->e2fs_ipg /fs->e2fs_ipb;
- fs->e2fs_desc_per_block = fs->e2fs_bsize / sizeof (struct ext2_group_desc);
+ fs->e2fs_itpg = fs->e2fs_ipg /fs->e2fs_ipb;
+ fs->e2fs_descpb = fs->e2fs_bsize / sizeof (struct ext2_group_desc);
/* s_resuid / s_resgid ? */
fs->e2fs_gcount = (es->s_blocks_count - es->s_first_data_block +
EXT2_BLOCKS_PER_GROUP(fs) - 1) / EXT2_BLOCKS_PER_GROUP(fs);
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vnops.c#7 (text+ko) ====
@@ -76,7 +76,6 @@
#include <gnu/fs/ext2fs/inode.h>
#include <gnu/fs/ext2fs/ext2_mount.h>
-#include <gnu/fs/ext2fs/ext2_fs_sb.h>
#include <gnu/fs/ext2fs/fs.h>
#include <gnu/fs/ext2fs/ext2_extern.h>
#include <gnu/fs/ext2fs/ext2_fs.h>
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#4 (text+ko) ====
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/i386-bitops.h#3 (text+ko) ====
==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/inode.h#4 (text+ko) ====
More information about the p4-projects
mailing list