Blame SOURCES/0086-grub-core-fs-nilfs2.c-grub_nilfs2_palloc_groups_per_.patch

f96e0b
From 7c6640d26459b059d1f6854907351e90070e643e Mon Sep 17 00:00:00 2001
f96e0b
From: Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>
f96e0b
Date: Sat, 5 Jan 2013 16:53:04 +0100
f96e0b
Subject: [PATCH 086/482] 	* grub-core/fs/nilfs2.c
f96e0b
 (-grub_nilfs2_palloc_groups_per_desc_block): 	Rename to ... 
f96e0b
 (grub_nilfs2_palloc_log_groups_per_desc_block): ... this. Return log 	of
f96e0b
 groups_per_block. All users updated.
f96e0b
f96e0b
---
f96e0b
 ChangeLog             |  7 +++++++
f96e0b
 grub-core/fs/nilfs2.c | 20 ++++++++++++--------
f96e0b
 2 files changed, 19 insertions(+), 8 deletions(-)
f96e0b
f96e0b
diff --git a/ChangeLog b/ChangeLog
f96e0b
index f15e098..ea191b3 100644
f96e0b
--- a/ChangeLog
f96e0b
+++ b/ChangeLog
f96e0b
@@ -1,5 +1,12 @@
f96e0b
 2013-01-05  Vladimir Serbinenko  <phcoder@gmail.com>
f96e0b
 
f96e0b
+	* grub-core/fs/nilfs2.c (-grub_nilfs2_palloc_groups_per_desc_block):
f96e0b
+	Rename to ...
f96e0b
+	(grub_nilfs2_palloc_log_groups_per_desc_block): ... this. Return log
f96e0b
+	of groups_per_block. All users updated.
f96e0b
+
f96e0b
+2013-01-05  Vladimir Serbinenko  <phcoder@gmail.com>
f96e0b
+
f96e0b
 	* grub-core/disk/diskfilter.c (grub_diskfilter_write): Call
f96e0b
 	grub_error properly.
f96e0b
 	* grub-core/disk/ieee1275/nand.c (grub_nand_write): Likewise.
f96e0b
diff --git a/grub-core/fs/nilfs2.c b/grub-core/fs/nilfs2.c
f96e0b
index f36c513..5b34486 100644
f96e0b
--- a/grub-core/fs/nilfs2.c
f96e0b
+++ b/grub-core/fs/nilfs2.c
f96e0b
@@ -214,6 +214,8 @@ struct grub_nilfs2_palloc_group_desc
f96e0b
   grub_uint32_t pg_nfrees;
f96e0b
 };
f96e0b
 
f96e0b
+#define LOG_SIZE_GROUP_DESC 2
f96e0b
+
f96e0b
 #define LOG_NILFS_DAT_ENTRY_SIZE 5
f96e0b
 struct grub_nilfs2_dat_entry
f96e0b
 {
f96e0b
@@ -311,10 +313,12 @@ grub_nilfs2_palloc_group (struct grub_nilfs2_data *data,
f96e0b
 }
f96e0b
 
f96e0b
 static inline grub_uint32_t
f96e0b
-grub_nilfs2_palloc_groups_per_desc_block (struct grub_nilfs2_data *data)
f96e0b
+grub_nilfs2_palloc_log_groups_per_desc_block (struct grub_nilfs2_data *data)
f96e0b
 {
f96e0b
-  return NILFS2_BLOCK_SIZE (data) /
f96e0b
-    sizeof (struct grub_nilfs2_palloc_group_desc);
f96e0b
+  return LOG2_BLOCK_SIZE (data) - LOG_SIZE_GROUP_DESC;
f96e0b
+
f96e0b
+  COMPILE_TIME_ASSERT (sizeof (struct grub_nilfs2_palloc_group_desc)
f96e0b
+		       == (1 << LOG_SIZE_GROUP_DESC));
f96e0b
 }
f96e0b
 
f96e0b
 static inline grub_uint32_t
f96e0b
@@ -338,8 +342,8 @@ static inline grub_uint32_t
f96e0b
 grub_nilfs2_blocks_per_desc_block_log (struct grub_nilfs2_data *data,
f96e0b
 				       unsigned long log_entry_size)
f96e0b
 {
f96e0b
-  return grub_nilfs2_palloc_groups_per_desc_block (data) *
f96e0b
-    grub_nilfs2_blocks_per_group_log (data, log_entry_size) + 1;
f96e0b
+  return(grub_nilfs2_blocks_per_group_log (data, log_entry_size)
f96e0b
+	 << grub_nilfs2_palloc_log_groups_per_desc_block (data)) + 1;
f96e0b
 }
f96e0b
 
f96e0b
 static inline grub_uint32_t
f96e0b
@@ -348,7 +352,7 @@ grub_nilfs2_palloc_desc_block_offset_log (struct grub_nilfs2_data *data,
f96e0b
 					  unsigned long log_entry_size)
f96e0b
 {
f96e0b
   grub_uint32_t desc_block =
f96e0b
-    group / grub_nilfs2_palloc_groups_per_desc_block (data);
f96e0b
+    group >> grub_nilfs2_palloc_log_groups_per_desc_block (data);
f96e0b
   return desc_block * grub_nilfs2_blocks_per_desc_block_log (data,
f96e0b
 							     log_entry_size);
f96e0b
 }
f96e0b
@@ -358,8 +362,8 @@ grub_nilfs2_palloc_bitmap_block_offset (struct grub_nilfs2_data *data,
f96e0b
 					unsigned long group,
f96e0b
 					unsigned long log_entry_size)
f96e0b
 {
f96e0b
-  unsigned long desc_offset = group %
f96e0b
-    grub_nilfs2_palloc_groups_per_desc_block (data);
f96e0b
+  unsigned long desc_offset = group
f96e0b
+    & ((1 << grub_nilfs2_palloc_log_groups_per_desc_block (data)) - 1);
f96e0b
 
f96e0b
   return grub_nilfs2_palloc_desc_block_offset_log (data, group, log_entry_size)
f96e0b
     + 1
f96e0b
-- 
f96e0b
1.8.2.1
f96e0b