diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-09-08 09:13:38 -0400 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-09-30 04:12:57 -0400 |
commit | 625bf371c1522764fc1cf2981b041c5f9a19e894 (patch) | |
tree | 9a3530c1e71a612c510b7072ecffd31628fe60a6 /fs | |
parent | ccb3eba72453a3b5aa37dda02e3a690449e3d229 (diff) |
UBIFS: use bit-fields when possible
The "bulk_read" and "no_chk_data_crc" have only 2 values -
0 and 1. We already have bit-fields in corresponding data
structers, so make "bulk_read" and "no_chk_data_crc"
bit-fields as well.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ubifs/ubifs.h | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h index d6ae3f7b2b05..542cbafe76e1 100644 --- a/fs/ubifs/ubifs.h +++ b/fs/ubifs/ubifs.h | |||
@@ -331,6 +331,7 @@ struct ubifs_gced_idx_leb { | |||
331 | * this inode | 331 | * this inode |
332 | * @dirty: non-zero if the inode is dirty | 332 | * @dirty: non-zero if the inode is dirty |
333 | * @xattr: non-zero if this is an extended attribute inode | 333 | * @xattr: non-zero if this is an extended attribute inode |
334 | * @bulk_read: non-zero if bulk-read should be used | ||
334 | * @ui_mutex: serializes inode write-back with the rest of VFS operations, | 335 | * @ui_mutex: serializes inode write-back with the rest of VFS operations, |
335 | * serializes "clean <-> dirty" state changes, serializes bulk-read, | 336 | * serializes "clean <-> dirty" state changes, serializes bulk-read, |
336 | * protects @dirty, @ui_size, and @xattr_size | 337 | * protects @dirty, @ui_size, and @xattr_size |
@@ -343,7 +344,6 @@ struct ubifs_gced_idx_leb { | |||
343 | * @compr_type: default compression type used for this inode | 344 | * @compr_type: default compression type used for this inode |
344 | * @last_page_read: page number of last page read (for bulk read) | 345 | * @last_page_read: page number of last page read (for bulk read) |
345 | * @read_in_a_row: number of consecutive pages read in a row (for bulk read) | 346 | * @read_in_a_row: number of consecutive pages read in a row (for bulk read) |
346 | * @bulk_read: indicates whether bulk-read should be used | ||
347 | * @data_len: length of the data attached to the inode | 347 | * @data_len: length of the data attached to the inode |
348 | * @data: inode's data | 348 | * @data: inode's data |
349 | * | 349 | * |
@@ -385,6 +385,7 @@ struct ubifs_inode { | |||
385 | unsigned int xattr_names; | 385 | unsigned int xattr_names; |
386 | unsigned int dirty:1; | 386 | unsigned int dirty:1; |
387 | unsigned int xattr:1; | 387 | unsigned int xattr:1; |
388 | unsigned int bulk_read:1; | ||
388 | struct mutex ui_mutex; | 389 | struct mutex ui_mutex; |
389 | spinlock_t ui_lock; | 390 | spinlock_t ui_lock; |
390 | loff_t synced_i_size; | 391 | loff_t synced_i_size; |
@@ -393,7 +394,6 @@ struct ubifs_inode { | |||
393 | int compr_type; | 394 | int compr_type; |
394 | pgoff_t last_page_read; | 395 | pgoff_t last_page_read; |
395 | pgoff_t read_in_a_row; | 396 | pgoff_t read_in_a_row; |
396 | int bulk_read; | ||
397 | int data_len; | 397 | int data_len; |
398 | void *data; | 398 | void *data; |
399 | }; | 399 | }; |
@@ -940,6 +940,7 @@ struct ubifs_mount_opts { | |||
940 | * @cmt_state: commit state | 940 | * @cmt_state: commit state |
941 | * @cs_lock: commit state lock | 941 | * @cs_lock: commit state lock |
942 | * @cmt_wq: wait queue to sleep on if the log is full and a commit is running | 942 | * @cmt_wq: wait queue to sleep on if the log is full and a commit is running |
943 | * | ||
943 | * @fast_unmount: do not run journal commit before un-mounting | 944 | * @fast_unmount: do not run journal commit before un-mounting |
944 | * @big_lpt: flag that LPT is too big to write whole during commit | 945 | * @big_lpt: flag that LPT is too big to write whole during commit |
945 | * @check_lpt_free: flag that indicates LPT GC may be needed | 946 | * @check_lpt_free: flag that indicates LPT GC may be needed |
@@ -947,6 +948,9 @@ struct ubifs_mount_opts { | |||
947 | * optimization) | 948 | * optimization) |
948 | * @nospace_rp: the same as @nospace, but additionally means that even reserved | 949 | * @nospace_rp: the same as @nospace, but additionally means that even reserved |
949 | * pool is full | 950 | * pool is full |
951 | * @no_chk_data_crc: do not check CRCs when reading data nodes (except during | ||
952 | * recovery) | ||
953 | * @bulk_read: enable bulk-reads | ||
950 | * | 954 | * |
951 | * @tnc_mutex: protects the Tree Node Cache (TNC), @zroot, @cnext, @enext, and | 955 | * @tnc_mutex: protects the Tree Node Cache (TNC), @zroot, @cnext, @enext, and |
952 | * @calc_idx_sz | 956 | * @calc_idx_sz |
@@ -970,6 +974,7 @@ struct ubifs_mount_opts { | |||
970 | * @mst_node: master node | 974 | * @mst_node: master node |
971 | * @mst_offs: offset of valid master node | 975 | * @mst_offs: offset of valid master node |
972 | * @mst_mutex: protects the master node area, @mst_node, and @mst_offs | 976 | * @mst_mutex: protects the master node area, @mst_node, and @mst_offs |
977 | * @bulk_read_buf_size: buffer size for bulk-reads | ||
973 | * | 978 | * |
974 | * @log_lebs: number of logical eraseblocks in the log | 979 | * @log_lebs: number of logical eraseblocks in the log |
975 | * @log_bytes: log size in bytes | 980 | * @log_bytes: log size in bytes |
@@ -1000,12 +1005,6 @@ struct ubifs_mount_opts { | |||
1000 | * @old_leb_cnt: count of logical eraseblocks before re-size | 1005 | * @old_leb_cnt: count of logical eraseblocks before re-size |
1001 | * @ro_media: the underlying UBI volume is read-only | 1006 | * @ro_media: the underlying UBI volume is read-only |
1002 | * | 1007 | * |
1003 | * @bulk_read: enable bulk-reads | ||
1004 | * @bulk_read_buf_size: buffer size for bulk-reads | ||
1005 | * | ||
1006 | * @no_chk_data_crc: do not check CRCs when reading data nodes (except during | ||
1007 | * recovery) | ||
1008 | * | ||
1009 | * @dirty_pg_cnt: number of dirty pages (not used) | 1008 | * @dirty_pg_cnt: number of dirty pages (not used) |
1010 | * @dirty_zn_cnt: number of dirty znodes | 1009 | * @dirty_zn_cnt: number of dirty znodes |
1011 | * @clean_zn_cnt: number of clean znodes | 1010 | * @clean_zn_cnt: number of clean znodes |
@@ -1188,11 +1187,14 @@ struct ubifs_info { | |||
1188 | int cmt_state; | 1187 | int cmt_state; |
1189 | spinlock_t cs_lock; | 1188 | spinlock_t cs_lock; |
1190 | wait_queue_head_t cmt_wq; | 1189 | wait_queue_head_t cmt_wq; |
1190 | |||
1191 | unsigned int fast_unmount:1; | 1191 | unsigned int fast_unmount:1; |
1192 | unsigned int big_lpt:1; | 1192 | unsigned int big_lpt:1; |
1193 | unsigned int check_lpt_free:1; | 1193 | unsigned int check_lpt_free:1; |
1194 | unsigned int nospace:1; | 1194 | unsigned int nospace:1; |
1195 | unsigned int nospace_rp:1; | 1195 | unsigned int nospace_rp:1; |
1196 | unsigned int no_chk_data_crc:1; | ||
1197 | unsigned int bulk_read:1; | ||
1196 | 1198 | ||
1197 | struct mutex tnc_mutex; | 1199 | struct mutex tnc_mutex; |
1198 | struct ubifs_zbranch zroot; | 1200 | struct ubifs_zbranch zroot; |
@@ -1217,6 +1219,7 @@ struct ubifs_info { | |||
1217 | struct ubifs_mst_node *mst_node; | 1219 | struct ubifs_mst_node *mst_node; |
1218 | int mst_offs; | 1220 | int mst_offs; |
1219 | struct mutex mst_mutex; | 1221 | struct mutex mst_mutex; |
1222 | int bulk_read_buf_size; | ||
1220 | 1223 | ||
1221 | int log_lebs; | 1224 | int log_lebs; |
1222 | long long log_bytes; | 1225 | long long log_bytes; |
@@ -1247,11 +1250,6 @@ struct ubifs_info { | |||
1247 | int old_leb_cnt; | 1250 | int old_leb_cnt; |
1248 | int ro_media; | 1251 | int ro_media; |
1249 | 1252 | ||
1250 | int bulk_read; | ||
1251 | int bulk_read_buf_size; | ||
1252 | |||
1253 | int no_chk_data_crc; | ||
1254 | |||
1255 | atomic_long_t dirty_pg_cnt; | 1253 | atomic_long_t dirty_pg_cnt; |
1256 | atomic_long_t dirty_zn_cnt; | 1254 | atomic_long_t dirty_zn_cnt; |
1257 | atomic_long_t clean_zn_cnt; | 1255 | atomic_long_t clean_zn_cnt; |