diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-08 18:11:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-08 18:11:48 -0400 |
commit | 942d33da999b86821c9aee9615fcb81207ee04c7 (patch) | |
tree | db14ab92982f936c0a2ea2202f5e301310f33bdd /include/linux | |
parent | 246e6a0d781091c4657890ffa497c2576bd99095 (diff) | |
parent | 59bbd474abb9dd6a0c1a74df758ec29c7a8b150f (diff) |
Merge tag 'f2fs-for-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs
Pull f2fs updates from Jaegeuk Kim:
"This patch-set includes the following major enhancement patches.
- introduce a new gloabl lock scheme
- add tracepoints on several major functions
- fix the overall cleaning process focused on victim selection
- apply the block plugging to merge IOs as much as possible
- enhance management of free nids and its list
- enhance the readahead mode for node pages
- address several cretical deadlock conditions
- reduce lock_page calls
The other minor bug fixes and enhancements are as follows.
- calculation mistakes: overflow
- bio types: READ, READA, and READ_SYNC
- fix the recovery flow, data races, and null pointer errors"
* tag 'f2fs-for-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (68 commits)
f2fs: cover free_nid management with spin_lock
f2fs: optimize scan_nat_page()
f2fs: code cleanup for scan_nat_page() and build_free_nids()
f2fs: bugfix for alloc_nid_failed()
f2fs: recover when journal contains deleted files
f2fs: continue to mount after failing recovery
f2fs: avoid deadlock during evict after f2fs_gc
f2fs: modify the number of issued pages to merge IOs
f2fs: remove useless #include <linux/proc_fs.h> as we're now using sysfs as debug entry.
f2fs: fix inconsistent using of NM_WOUT_THRESHOLD
f2fs: check truncation of mapping after lock_page
f2fs: enhance alloc_nid and build_free_nids flows
f2fs: add a tracepoint on f2fs_new_inode
f2fs: check nid == 0 in add_free_nid
f2fs: add REQ_META about metadata requests for submit
f2fs: give a chance to merge IOs by IO scheduler
f2fs: avoid frequent background GC
f2fs: add tracepoints to debug checkpoint request
f2fs: add tracepoints for write page operations
f2fs: add tracepoints to debug the block allocation
...
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/f2fs_fs.h | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/include/linux/f2fs_fs.h b/include/linux/f2fs_fs.h index f9a12f6243a5..df6fab82f87e 100644 --- a/include/linux/f2fs_fs.h +++ b/include/linux/f2fs_fs.h | |||
@@ -139,7 +139,7 @@ struct f2fs_extent { | |||
139 | __le32 len; /* lengh of the extent */ | 139 | __le32 len; /* lengh of the extent */ |
140 | } __packed; | 140 | } __packed; |
141 | 141 | ||
142 | #define F2FS_MAX_NAME_LEN 256 | 142 | #define F2FS_NAME_LEN 255 |
143 | #define ADDRS_PER_INODE 923 /* Address Pointers in an Inode */ | 143 | #define ADDRS_PER_INODE 923 /* Address Pointers in an Inode */ |
144 | #define ADDRS_PER_BLOCK 1018 /* Address Pointers in a Direct Block */ | 144 | #define ADDRS_PER_BLOCK 1018 /* Address Pointers in a Direct Block */ |
145 | #define NIDS_PER_BLOCK 1018 /* Node IDs in an Indirect Block */ | 145 | #define NIDS_PER_BLOCK 1018 /* Node IDs in an Indirect Block */ |
@@ -165,7 +165,8 @@ struct f2fs_inode { | |||
165 | __le32 i_flags; /* file attributes */ | 165 | __le32 i_flags; /* file attributes */ |
166 | __le32 i_pino; /* parent inode number */ | 166 | __le32 i_pino; /* parent inode number */ |
167 | __le32 i_namelen; /* file name length */ | 167 | __le32 i_namelen; /* file name length */ |
168 | __u8 i_name[F2FS_MAX_NAME_LEN]; /* file name for SPOR */ | 168 | __u8 i_name[F2FS_NAME_LEN]; /* file name for SPOR */ |
169 | __u8 i_reserved2; /* for backward compatibility */ | ||
169 | 170 | ||
170 | struct f2fs_extent i_ext; /* caching a largest extent */ | 171 | struct f2fs_extent i_ext; /* caching a largest extent */ |
171 | 172 | ||
@@ -362,10 +363,10 @@ struct f2fs_summary_block { | |||
362 | typedef __le32 f2fs_hash_t; | 363 | typedef __le32 f2fs_hash_t; |
363 | 364 | ||
364 | /* One directory entry slot covers 8bytes-long file name */ | 365 | /* One directory entry slot covers 8bytes-long file name */ |
365 | #define F2FS_NAME_LEN 8 | 366 | #define F2FS_SLOT_LEN 8 |
366 | #define F2FS_NAME_LEN_BITS 3 | 367 | #define F2FS_SLOT_LEN_BITS 3 |
367 | 368 | ||
368 | #define GET_DENTRY_SLOTS(x) ((x + F2FS_NAME_LEN - 1) >> F2FS_NAME_LEN_BITS) | 369 | #define GET_DENTRY_SLOTS(x) ((x + F2FS_SLOT_LEN - 1) >> F2FS_SLOT_LEN_BITS) |
369 | 370 | ||
370 | /* the number of dentry in a block */ | 371 | /* the number of dentry in a block */ |
371 | #define NR_DENTRY_IN_BLOCK 214 | 372 | #define NR_DENTRY_IN_BLOCK 214 |
@@ -377,10 +378,10 @@ typedef __le32 f2fs_hash_t; | |||
377 | #define SIZE_OF_DENTRY_BITMAP ((NR_DENTRY_IN_BLOCK + BITS_PER_BYTE - 1) / \ | 378 | #define SIZE_OF_DENTRY_BITMAP ((NR_DENTRY_IN_BLOCK + BITS_PER_BYTE - 1) / \ |
378 | BITS_PER_BYTE) | 379 | BITS_PER_BYTE) |
379 | #define SIZE_OF_RESERVED (PAGE_SIZE - ((SIZE_OF_DIR_ENTRY + \ | 380 | #define SIZE_OF_RESERVED (PAGE_SIZE - ((SIZE_OF_DIR_ENTRY + \ |
380 | F2FS_NAME_LEN) * \ | 381 | F2FS_SLOT_LEN) * \ |
381 | NR_DENTRY_IN_BLOCK + SIZE_OF_DENTRY_BITMAP)) | 382 | NR_DENTRY_IN_BLOCK + SIZE_OF_DENTRY_BITMAP)) |
382 | 383 | ||
383 | /* One directory entry slot representing F2FS_NAME_LEN-sized file name */ | 384 | /* One directory entry slot representing F2FS_SLOT_LEN-sized file name */ |
384 | struct f2fs_dir_entry { | 385 | struct f2fs_dir_entry { |
385 | __le32 hash_code; /* hash code of file name */ | 386 | __le32 hash_code; /* hash code of file name */ |
386 | __le32 ino; /* inode number */ | 387 | __le32 ino; /* inode number */ |
@@ -394,7 +395,7 @@ struct f2fs_dentry_block { | |||
394 | __u8 dentry_bitmap[SIZE_OF_DENTRY_BITMAP]; | 395 | __u8 dentry_bitmap[SIZE_OF_DENTRY_BITMAP]; |
395 | __u8 reserved[SIZE_OF_RESERVED]; | 396 | __u8 reserved[SIZE_OF_RESERVED]; |
396 | struct f2fs_dir_entry dentry[NR_DENTRY_IN_BLOCK]; | 397 | struct f2fs_dir_entry dentry[NR_DENTRY_IN_BLOCK]; |
397 | __u8 filename[NR_DENTRY_IN_BLOCK][F2FS_NAME_LEN]; | 398 | __u8 filename[NR_DENTRY_IN_BLOCK][F2FS_SLOT_LEN]; |
398 | } __packed; | 399 | } __packed; |
399 | 400 | ||
400 | /* file types used in inode_info->flags */ | 401 | /* file types used in inode_info->flags */ |