summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-03-18 22:33:38 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2011-03-18 22:33:38 -0700
commit5bab188a316718a26346cdb25c4cc6b319f8f907 (patch)
tree0316a8294b9709a55b0c5b2f1c1c0d3793d35c01 /include
parenta8c91da549f625d0600d5bd7e1831066b55edf0d (diff)
parent4d3cf1bc557dc8b88e1cabf1980b3baa3380a641 (diff)
downloadlinux-5bab188a316718a26346cdb25c4cc6b319f8f907.tar.gz
linux-5bab188a316718a26346cdb25c4cc6b319f8f907.tar.bz2
linux-5bab188a316718a26346cdb25c4cc6b319f8f907.zip
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: nilfs2: move NILFS_SUPER_MAGIC to linux/magic.h nilfs2: get rid of nilfs_sb_info structure nilfs2: use sb instance instead of nilfs_sb_info struct nilfs2: get rid of sc_sbi back pointer nilfs2: move log writer onto nilfs object nilfs2: move next generation counter into nilfs object nilfs2: move s_inode_lock and s_dirty_files into nilfs object nilfs2: move parameters on nilfs_sb_info into nilfs object nilfs2: move mount options to nilfs object nilfs2: record used amount of each checkpoint in checkpoint list nilfs2: optimize rec_len functions nilfs2: append blocksize info to warnings during loading super blocks nilfs2: add compat ioctl nilfs2: implement FS_IOC_GETFLAGS/SETFLAGS/GETVERSION nilfs2: tighten restrictions on inode flags nilfs2: mark S_NOATIME on inodes only if NOATIME attribute is set nilfs2: use common file attribute macros nilfs2: add free entries count only if clear bit operation succeeded nilfs2: decrement inodes count only if raw inode was successfully deleted
Diffstat (limited to 'include')
-rw-r--r--include/linux/magic.h1
-rw-r--r--include/linux/nilfs2_fs.h32
2 files changed, 10 insertions, 23 deletions
diff --git a/include/linux/magic.h b/include/linux/magic.h
index 6cfe344f9559..1e5df2af8d84 100644
--- a/include/linux/magic.h
+++ b/include/linux/magic.h
@@ -23,6 +23,7 @@
#define XENFS_SUPER_MAGIC 0xabba1974
#define EXT4_SUPER_MAGIC 0xEF53
#define BTRFS_SUPER_MAGIC 0x9123683E
+#define NILFS_SUPER_MAGIC 0x3434
#define HPFS_SUPER_MAGIC 0xf995e849
#define ISOFS_SUPER_MAGIC 0x9660
#define JFFS2_SUPER_MAGIC 0x72b6
diff --git a/include/linux/nilfs2_fs.h b/include/linux/nilfs2_fs.h
index 227e49dd5720..8768c469e93e 100644
--- a/include/linux/nilfs2_fs.h
+++ b/include/linux/nilfs2_fs.h
@@ -40,26 +40,7 @@
#include <linux/types.h>
#include <linux/ioctl.h>
-
-/*
- * Inode flags stored in nilfs_inode and on-memory nilfs inode
- *
- * We define these flags based on ext2-fs because of the
- * compatibility reason; to avoid problems in chattr(1)
- */
-#define NILFS_SECRM_FL 0x00000001 /* Secure deletion */
-#define NILFS_UNRM_FL 0x00000002 /* Undelete */
-#define NILFS_SYNC_FL 0x00000008 /* Synchronous updates */
-#define NILFS_IMMUTABLE_FL 0x00000010 /* Immutable file */
-#define NILFS_APPEND_FL 0x00000020 /* writes to file may only append */
-#define NILFS_NODUMP_FL 0x00000040 /* do not dump file */
-#define NILFS_NOATIME_FL 0x00000080 /* do not update atime */
-/* Reserved for compression usage... */
-#define NILFS_NOTAIL_FL 0x00008000 /* file tail should not be merged */
-#define NILFS_DIRSYNC_FL 0x00010000 /* dirsync behaviour */
-
-#define NILFS_FL_USER_VISIBLE 0x0003DFFF /* User visible flags */
-#define NILFS_FL_USER_MODIFIABLE 0x000380FF /* User modifiable flags */
+#include <linux/magic.h>
#define NILFS_INODE_BMAP_SIZE 7
@@ -236,8 +217,10 @@ struct nilfs_super_block {
* If there is a bit set in the incompatible feature set that the kernel
* doesn't know about, it should refuse to mount the filesystem.
*/
+#define NILFS_FEATURE_COMPAT_RO_BLOCK_COUNT 0x00000001ULL
+
#define NILFS_FEATURE_COMPAT_SUPP 0ULL
-#define NILFS_FEATURE_COMPAT_RO_SUPP 0ULL
+#define NILFS_FEATURE_COMPAT_RO_SUPP NILFS_FEATURE_COMPAT_RO_BLOCK_COUNT
#define NILFS_FEATURE_INCOMPAT_SUPP 0ULL
/*
@@ -260,7 +243,6 @@ struct nilfs_super_block {
#define NILFS_USER_INO 11 /* Fisrt user's file inode number */
#define NILFS_SB_OFFSET_BYTES 1024 /* byte offset of nilfs superblock */
-#define NILFS_SUPER_MAGIC 0x3434 /* NILFS filesystem magic number */
#define NILFS_SEG_MIN_BLOCKS 16 /* Minimum number of blocks in
a full segment */
@@ -346,17 +328,21 @@ static inline unsigned nilfs_rec_len_from_disk(__le16 dlen)
{
unsigned len = le16_to_cpu(dlen);
+#if !defined(__KERNEL__) || (PAGE_CACHE_SIZE >= 65536)
if (len == NILFS_MAX_REC_LEN)
return 1 << 16;
+#endif
return len;
}
static inline __le16 nilfs_rec_len_to_disk(unsigned len)
{
+#if !defined(__KERNEL__) || (PAGE_CACHE_SIZE >= 65536)
if (len == (1 << 16))
return cpu_to_le16(NILFS_MAX_REC_LEN);
else if (len > (1 << 16))
BUG();
+#endif
return cpu_to_le16(len);
}
@@ -525,7 +511,7 @@ struct nilfs_checkpoint {
__le64 cp_create;
__le64 cp_nblk_inc;
__le64 cp_inodes_count;
- __le64 cp_blocks_count; /* Reserved (might be deleted) */
+ __le64 cp_blocks_count;
/* Do not change the byte offset of ifile inode.
To keep the compatibility of the disk format,