From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
Zwane Mwaikambo <zwane@arm.linux.org.uk>,
Theodore Ts'o <tytso@mit.edu>,
Randy Dunlap <rdunlap@xenotime.net>,
Dave Jones <davej@redhat.com>,
Chuck Wolber <chuckw@quantumlinux.com>,
Chris Wedgwood <reviews@ml.cw.f00f.org>,
Michael Krufky <mkrufky@linuxtv.org>,
Chuck Ebbert <cebbert@redhat.com>,
Domenico Andreoli <cavokz@gmail.com>, Willy Tarreau <w@1wt.eu>,
Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
Jake Edge <jake@lwn.net>, Eugene Teo <eteo@redhat.com>,
torvalds@linux-foundation.org, akpm@linux-foundation.org,
alan@lxorguk.ukuu.org.uk, linux-ext4@vger.kernel.org,
"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Subject: [patch 24/39] ext4: cleanup mballoc header files
Date: Wed, 18 Feb 2009 13:32:59 -0800 [thread overview]
Message-ID: <20090218213259.GY19814@kroah.com> (raw)
In-Reply-To: <20090218213021.GA19814@kroah.com>
[-- Attachment #1: ext4-cleanup-mballoc-header-files.patch --]
[-- Type: text/plain, Size: 3810 bytes --]
2.6.28-stable review patch. If anyone has any objections, please let us know.
------------------
From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
(cherry picked from commit c3a326a657562dab81acf05aee106dc1fe345eb4)
Move some of the forward declaration of the static functions
to mballoc.c where they are used. This enables us to include
mballoc.h in other .c files. Also correct the buddy cache
documentation.
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
fs/ext4/mballoc.c | 23 +++++++++++++++++++----
fs/ext4/mballoc.h | 18 +-----------------
2 files changed, 20 insertions(+), 21 deletions(-)
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -100,7 +100,7 @@
* inode as:
*
* { page }
- * [ group 0 buddy][ group 0 bitmap] [group 1][ group 1]...
+ * [ group 0 bitmap][ group 0 buddy] [group 1][ group 1]...
*
*
* one block each for bitmap and buddy information. So for each group we
@@ -330,6 +330,16 @@
* object
*
*/
+static struct kmem_cache *ext4_pspace_cachep;
+static struct kmem_cache *ext4_ac_cachep;
+static struct kmem_cache *ext4_free_ext_cachep;
+static void ext4_mb_generate_from_pa(struct super_block *sb, void *bitmap,
+ ext4_group_t group);
+static int ext4_mb_init_per_dev_proc(struct super_block *sb);
+static int ext4_mb_destroy_per_dev_proc(struct super_block *sb);
+static void release_blocks_on_commit(journal_t *journal, transaction_t *txn);
+
+
static inline void *mb_correct_addr_and_bit(int *bit, void *addr)
{
@@ -716,7 +726,7 @@ static void ext4_mb_generate_buddy(struc
* stored in the inode as
*
* { page }
- * [ group 0 buddy][ group 0 bitmap] [group 1][ group 1]...
+ * [ group 0 bitmap][ group 0 buddy] [group 1][ group 1]...
*
*
* one block each for bitmap and buddy information.
@@ -1320,8 +1330,13 @@ static void ext4_mb_use_best_found(struc
ac->ac_tail = ret & 0xffff;
ac->ac_buddy = ret >> 16;
- /* XXXXXXX: SUCH A HORRIBLE **CK */
- /*FIXME!! Why ? */
+ /*
+ * take the page reference. We want the page to be pinned
+ * so that we don't get a ext4_mb_init_cache_call for this
+ * group until we update the bitmap. That would mean we
+ * double allocate blocks. The reference is dropped
+ * in ext4_mb_release_context
+ */
ac->ac_bitmap_page = e4b->bd_bitmap_page;
get_page(ac->ac_bitmap_page);
ac->ac_buddy_page = e4b->bd_buddy_page;
--- a/fs/ext4/mballoc.h
+++ b/fs/ext4/mballoc.h
@@ -99,9 +99,6 @@
*/
#define MB_DEFAULT_GROUP_PREALLOC 512
-static struct kmem_cache *ext4_pspace_cachep;
-static struct kmem_cache *ext4_ac_cachep;
-static struct kmem_cache *ext4_free_ext_cachep;
struct ext4_free_data {
/* this links the free block information from group_info */
@@ -262,25 +259,12 @@ static inline void ext4_mb_store_history
{
return;
}
-#else
-static void ext4_mb_store_history(struct ext4_allocation_context *ac);
#endif
#define in_range(b, first, len) ((b) >= (first) && (b) <= (first) + (len) - 1)
struct buffer_head *read_block_bitmap(struct super_block *, ext4_group_t);
-static void ext4_mb_generate_from_pa(struct super_block *sb, void *bitmap,
- ext4_group_t group);
-static void ext4_mb_return_to_preallocation(struct inode *inode,
- struct ext4_buddy *e4b, sector_t block,
- int count);
-static void ext4_mb_put_pa(struct ext4_allocation_context *,
- struct super_block *, struct ext4_prealloc_space *pa);
-static int ext4_mb_init_per_dev_proc(struct super_block *sb);
-static int ext4_mb_destroy_per_dev_proc(struct super_block *sb);
-static void release_blocks_on_commit(journal_t *journal, transaction_t *txn);
next prev parent reply other threads:[~2009-02-18 21:35 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20090218212144.965748151@mini.kroah.org>
[not found] ` <20090218213021.GA19814@kroah.com>
2009-02-18 21:32 ` [patch 15/39] ext4: Add support for non-native signed/unsigned htree hash algorithms Greg KH
2009-02-18 21:32 ` [patch 16/39] ext4: tone down ext4_da_writepages warnings Greg KH
2009-02-18 21:32 ` [patch 17/39] ext4: Fix the delalloc writepages to allocate blocks at the right offset Greg KH
2009-02-18 21:32 ` [patch 18/39] ext4: avoid ext4_error when mounting a fs with a single bg Greg KH
2009-02-18 21:32 ` [patch 19/39] ext4: Widen type of ext4_sb_info.s_mb_maxs[] Greg KH
2009-02-18 21:32 ` [patch 20/39] jbd2: Add barrier not supported test to journal_wait_on_commit_record Greg KH
2009-02-18 21:32 ` [patch 21/39] ext4: Dont overwrite allocation_context ac_status Greg KH
2009-02-18 21:32 ` [patch 22/39] ext4: Add blocks added during resize to bitmap Greg KH
2009-02-18 21:32 ` [patch 23/39] ext4: Use EXT4_GROUP_INFO_NEED_INIT_BIT during resize Greg KH
2009-02-18 21:32 ` Greg KH [this message]
2009-02-18 21:33 ` [patch 25/39] ext4: dont use blocks freed but not yet committed in buddy cache init Greg KH
2009-02-18 21:33 ` [patch 26/39] ext4: Fix race between read_block_bitmap() and mark_diskspace_used() Greg KH
2009-02-18 21:33 ` [patch 27/39] ext4: Fix the race between read_inode_bitmap() and ext4_new_inode() Greg KH
2009-02-18 21:33 ` [patch 28/39] jbd2: Add BH_JBDPrivateStart Greg KH
2009-02-18 21:33 ` [patch 29/39] ext4: Use new buffer_head flag to check uninit group bitmaps initialization Greg KH
2009-02-18 21:33 ` [patch 30/39] ext4: mark the blocks/inode bitmap beyond end of group as used Greg KH
2009-02-18 21:33 ` [patch 31/39] ext4: Dont allow new groups to be added during block allocation Greg KH
2009-02-18 21:33 ` [patch 32/39] ext4: Init the complete page while building buddy cache Greg KH
2009-02-18 21:33 ` [patch 33/39] ext4: Fix s_dirty_blocks_counter if block allocation failed with nodelalloc Greg KH
2009-02-18 21:33 ` [patch 34/39] ext4: Add sanity checks for the superblock before mounting the filesystem Greg KH
2009-02-18 21:33 ` [patch 35/39] ext4: only use i_size_high for regular files Greg KH
2009-02-18 21:33 ` [patch 36/39] ext4: Add sanity check to make_indexed_dir Greg KH
2009-02-18 21:33 ` [patch 37/39] jbd2: On a __journal_expect() assertion failure printk "JBD2", not "EXT3-fs" Greg KH
2009-02-18 21:33 ` [patch 38/39] ext4: Initialize the new group descriptor when resizing the filesystem Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090218213259.GY19814@kroah.com \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=cavokz@gmail.com \
--cc=cebbert@redhat.com \
--cc=chuckw@quantumlinux.com \
--cc=davej@redhat.com \
--cc=eteo@redhat.com \
--cc=jake@lwn.net \
--cc=jmforbes@linuxtx.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mkrufky@linuxtv.org \
--cc=rbranco@la.checkpoint.com \
--cc=rdunlap@xenotime.net \
--cc=reviews@ml.cw.f00f.org \
--cc=stable@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=tytso@mit.edu \
--cc=w@1wt.eu \
--cc=zwane@arm.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).