From: swhiteho@redhat.com
To: linux-kernel@vger.kernel.org, cluster-devel@redhat.com
Cc: Steven Whitehouse <swhiteho@redhat.com>
Subject: [PATCH 04/58] [GFS2] Remove useless i_cache from inodes
Date: Mon, 21 Jan 2008 09:21:22 +0000 [thread overview]
Message-ID: <12009073492811-git-send-email-swhiteho@redhat.com> (raw)
Message-ID: <fdfa2222cde4496cdff43faf8fa4722e53338f54.1200905287.git.swhiteho@redhat.com> (raw)
In-Reply-To: <1200907348435-git-send-email-swhiteho@redhat.com>
In-Reply-To: <ba7d43779caabf7d3e6c62c3007564cdff351e40.1200905287.git.swhiteho@redhat.com>
From: Steven Whitehouse <swhiteho@redhat.com>
The i_cache was designed to keep references to the indirect blocks
used during block mapping so that they didn't have to be looked
up continually. The idea failed because there are too many places
where the i_cache needs to be freed, and this has in the past been
the cause of many bugs.
In addition there was no performance benefit being gained since the
disk blocks in question were cached anyway. So this patch removes
it in order to simplify the code to prepare for other changes which
would otherwise have had to add further support for this feature.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
index 110f03d..ba12423 100644
--- a/fs/gfs2/glops.c
+++ b/fs/gfs2/glops.c
@@ -56,7 +56,7 @@ static void gfs2_ail_empty_gl(struct gfs2_glock *gl)
bd = list_entry(head->next, struct gfs2_bufdata,
bd_ail_gl_list);
bh = bd->bd_bh;
- gfs2_remove_from_ail(NULL, bd);
+ gfs2_remove_from_ail(bd);
bd->bd_bh = NULL;
bh->b_private = NULL;
bd->bd_blkno = bh->b_blocknr;
@@ -287,23 +287,6 @@ static int inode_go_lock(struct gfs2_holder *gh)
}
/**
- * inode_go_unlock - operation done before an inode lock is unlocked by a
- * process
- * @gl: the glock
- * @flags:
- *
- */
-
-static void inode_go_unlock(struct gfs2_holder *gh)
-{
- struct gfs2_glock *gl = gh->gh_gl;
- struct gfs2_inode *ip = gl->gl_object;
-
- if (ip)
- gfs2_meta_cache_flush(ip);
-}
-
-/**
* rgrp_go_demote_ok - Check to see if it's ok to unlock a RG's glock
* @gl: the glock
*
@@ -377,7 +360,6 @@ static void trans_go_xmote_bh(struct gfs2_glock *gl)
if (gl->gl_state != LM_ST_UNLOCKED &&
test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags)) {
- gfs2_meta_cache_flush(GFS2_I(sdp->sd_jdesc->jd_inode));
j_gl->gl_ops->go_inval(j_gl, DIO_METADATA);
error = gfs2_find_jhead(sdp->sd_jdesc, &head);
@@ -437,7 +419,6 @@ const struct gfs2_glock_operations gfs2_inode_glops = {
.go_inval = inode_go_inval,
.go_demote_ok = inode_go_demote_ok,
.go_lock = inode_go_lock,
- .go_unlock = inode_go_unlock,
.go_type = LM_TYPE_INODE,
.go_min_hold_time = HZ / 10,
};
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index 55c72f0..5662ff9 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -275,8 +275,6 @@ struct gfs2_inode {
spinlock_t i_spin;
struct rw_semaphore i_rw_mutex;
unsigned long i_last_pfault;
-
- struct buffer_head *i_cache[GFS2_MAX_META_HEIGHT];
};
/*
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index ad0fe37..af493fc 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2/inode.c
@@ -293,11 +293,6 @@ static int gfs2_dinode_in(struct gfs2_inode *ip, const void *buf)
return 0;
}
-static void gfs2_inode_bh(struct gfs2_inode *ip, struct buffer_head *bh)
-{
- ip->i_cache[0] = bh;
-}
-
/**
* gfs2_inode_refresh - Refresh the incore copy of the dinode
* @ip: The GFS2 inode
@@ -965,7 +960,7 @@ struct inode *gfs2_createi(struct gfs2_holder *ghs, const struct qstr *name,
struct gfs2_inum_host inum = { .no_addr = 0, .no_formal_ino = 0 };
int error;
u64 generation;
- struct buffer_head *bh=NULL;
+ struct buffer_head *bh = NULL;
if (!name->len || name->len > GFS2_FNAMESIZE)
return ERR_PTR(-ENAMETOOLONG);
@@ -1002,8 +997,6 @@ struct inode *gfs2_createi(struct gfs2_holder *ghs, const struct qstr *name,
if (IS_ERR(inode))
goto fail_gunlock2;
- gfs2_inode_bh(GFS2_I(inode), bh);
-
error = gfs2_inode_refresh(GFS2_I(inode));
if (error)
goto fail_gunlock2;
@@ -1020,6 +1013,8 @@ struct inode *gfs2_createi(struct gfs2_holder *ghs, const struct qstr *name,
if (error)
goto fail_gunlock2;
+ if (bh)
+ brelse(bh);
if (!inode)
return ERR_PTR(-ENOMEM);
return inode;
@@ -1031,6 +1026,8 @@ fail_gunlock2:
fail_gunlock:
gfs2_glock_dq(ghs);
fail:
+ if (bh)
+ brelse(bh);
return ERR_PTR(error);
}
diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c
index 7df7024..70b404d 100644
--- a/fs/gfs2/log.c
+++ b/fs/gfs2/log.c
@@ -68,14 +68,12 @@ unsigned int gfs2_struct2blk(struct gfs2_sbd *sdp, unsigned int nstruct,
*
*/
-void gfs2_remove_from_ail(struct address_space *mapping, struct gfs2_bufdata *bd)
+void gfs2_remove_from_ail(struct gfs2_bufdata *bd)
{
bd->bd_ail = NULL;
list_del_init(&bd->bd_ail_st_list);
list_del_init(&bd->bd_ail_gl_list);
atomic_dec(&bd->bd_gl->gl_ail_count);
- if (mapping)
- gfs2_meta_cache_flush(GFS2_I(mapping->host));
brelse(bd->bd_bh);
}
@@ -248,7 +246,7 @@ static void gfs2_ail2_empty_one(struct gfs2_sbd *sdp, struct gfs2_ail *ai)
bd = list_entry(head->prev, struct gfs2_bufdata,
bd_ail_st_list);
gfs2_assert(sdp, bd->bd_ail == ai);
- gfs2_remove_from_ail(bd->bd_bh->b_page->mapping, bd);
+ gfs2_remove_from_ail(bd);
}
}
diff --git a/fs/gfs2/log.h b/fs/gfs2/log.h
index dae2824..24e7161 100644
--- a/fs/gfs2/log.h
+++ b/fs/gfs2/log.h
@@ -59,7 +59,7 @@ struct buffer_head *gfs2_log_fake_buf(struct gfs2_sbd *sdp,
struct buffer_head *real);
void gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl);
void gfs2_log_commit(struct gfs2_sbd *sdp, struct gfs2_trans *trans);
-void gfs2_remove_from_ail(struct address_space *mapping, struct gfs2_bufdata *bd);
+void gfs2_remove_from_ail(struct gfs2_bufdata *bd);
void gfs2_log_shutdown(struct gfs2_sbd *sdp);
void gfs2_meta_syncfs(struct gfs2_sbd *sdp);
diff --git a/fs/gfs2/main.c b/fs/gfs2/main.c
index 7ecfe0d..653fd5a 100644
--- a/fs/gfs2/main.c
+++ b/fs/gfs2/main.c
@@ -31,7 +31,6 @@ static void gfs2_init_inode_once(struct kmem_cache *cachep, void *foo)
inode_init_once(&ip->i_inode);
spin_lock_init(&ip->i_spin);
init_rwsem(&ip->i_rw_mutex);
- memset(ip->i_cache, 0, sizeof(ip->i_cache));
}
static void gfs2_init_glock_once(struct kmem_cache *cachep, void *foo)
diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c
index 4da4239..01ef902 100644
--- a/fs/gfs2/meta_io.c
+++ b/fs/gfs2/meta_io.c
@@ -317,7 +317,7 @@ void gfs2_remove_from_journal(struct buffer_head *bh, struct gfs2_trans *tr, int
}
if (bd) {
if (bd->bd_ail) {
- gfs2_remove_from_ail(NULL, bd);
+ gfs2_remove_from_ail(bd);
bh->b_private = NULL;
bd->bd_bh = NULL;
bd->bd_blkno = bh->b_blocknr;
@@ -358,32 +358,6 @@ void gfs2_meta_wipe(struct gfs2_inode *ip, u64 bstart, u32 blen)
}
/**
- * gfs2_meta_cache_flush - get rid of any references on buffers for this inode
- * @ip: The GFS2 inode
- *
- * This releases buffers that are in the most-recently-used array of
- * blocks used for indirect block addressing for this inode.
- */
-
-void gfs2_meta_cache_flush(struct gfs2_inode *ip)
-{
- struct buffer_head **bh_slot;
- unsigned int x;
-
- spin_lock(&ip->i_spin);
-
- for (x = 0; x < GFS2_MAX_META_HEIGHT; x++) {
- bh_slot = &ip->i_cache[x];
- if (*bh_slot) {
- brelse(*bh_slot);
- *bh_slot = NULL;
- }
- }
-
- spin_unlock(&ip->i_spin);
-}
-
-/**
* gfs2_meta_indirect_buffer - Get a metadata buffer
* @ip: The GFS2 inode
* @height: The level of this buf in the metadata (indir addr) tree (if any)
@@ -391,8 +365,6 @@ void gfs2_meta_cache_flush(struct gfs2_inode *ip)
* @new: Non-zero if we may create a new buffer
* @bhp: the buffer is returned here
*
- * Try to use the gfs2_inode's MRU metadata tree cache.
- *
* Returns: errno
*/
@@ -401,58 +373,25 @@ int gfs2_meta_indirect_buffer(struct gfs2_inode *ip, int height, u64 num,
{
struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
struct gfs2_glock *gl = ip->i_gl;
- struct buffer_head *bh = NULL, **bh_slot = ip->i_cache + height;
- int in_cache = 0;
-
- BUG_ON(!gl);
- BUG_ON(!sdp);
-
- spin_lock(&ip->i_spin);
- if (*bh_slot && (*bh_slot)->b_blocknr == num) {
- bh = *bh_slot;
- get_bh(bh);
- in_cache = 1;
- }
- spin_unlock(&ip->i_spin);
-
- if (!bh)
- bh = getbuf(gl, num, CREATE);
-
- if (!bh)
- return -ENOBUFS;
+ struct buffer_head *bh;
+ int ret = 0;
if (new) {
- if (gfs2_assert_warn(sdp, height))
- goto err;
- meta_prep_new(bh);
+ BUG_ON(height == 0);
+ bh = gfs2_meta_new(gl, num);
gfs2_trans_add_bh(ip->i_gl, bh, 1);
gfs2_metatype_set(bh, GFS2_METATYPE_IN, GFS2_FORMAT_IN);
gfs2_buffer_clear_tail(bh, sizeof(struct gfs2_meta_header));
} else {
u32 mtype = height ? GFS2_METATYPE_IN : GFS2_METATYPE_DI;
- if (!buffer_uptodate(bh)) {
- ll_rw_block(READ_META, 1, &bh);
- if (gfs2_meta_wait(sdp, bh))
- goto err;
+ ret = gfs2_meta_read(gl, num, DIO_WAIT, &bh);
+ if (ret == 0 && gfs2_metatype_check(sdp, bh, mtype)) {
+ brelse(bh);
+ ret = -EIO;
}
- if (gfs2_metatype_check(sdp, bh, mtype))
- goto err;
- }
-
- if (!in_cache) {
- spin_lock(&ip->i_spin);
- if (*bh_slot)
- brelse(*bh_slot);
- *bh_slot = bh;
- get_bh(bh);
- spin_unlock(&ip->i_spin);
}
-
*bhp = bh;
- return 0;
-err:
- brelse(bh);
- return -EIO;
+ return ret;
}
/**
diff --git a/fs/gfs2/meta_io.h b/fs/gfs2/meta_io.h
index b704822..73e3b1c 100644
--- a/fs/gfs2/meta_io.h
+++ b/fs/gfs2/meta_io.h
@@ -56,7 +56,6 @@ void gfs2_remove_from_journal(struct buffer_head *bh, struct gfs2_trans *tr,
void gfs2_meta_wipe(struct gfs2_inode *ip, u64 bstart, u32 blen);
-void gfs2_meta_cache_flush(struct gfs2_inode *ip);
int gfs2_meta_indirect_buffer(struct gfs2_inode *ip, int height, u64 num,
int new, struct buffer_head **bhp);
diff --git a/fs/gfs2/ops_address.c b/fs/gfs2/ops_address.c
index 1696e5d..4c4ef7f 100644
--- a/fs/gfs2/ops_address.c
+++ b/fs/gfs2/ops_address.c
@@ -154,7 +154,6 @@ static int gfs2_writepage(struct page *page, struct writeback_control *wbc)
error = block_write_full_page(page, gfs2_get_block_noalloc, wbc);
if (done_trans)
gfs2_trans_end(sdp);
- gfs2_meta_cache_flush(ip);
return error;
out_ignore:
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
index dd3e737..5183dfb 100644
--- a/fs/gfs2/super.c
+++ b/fs/gfs2/super.c
@@ -543,7 +543,6 @@ int gfs2_make_fs_rw(struct gfs2_sbd *sdp)
if (error)
return error;
- gfs2_meta_cache_flush(ip);
j_gl->gl_ops->go_inval(j_gl, DIO_METADATA);
error = gfs2_find_jhead(sdp->sd_jdesc, &head);
--
1.5.1.2
next prev parent reply other threads:[~2008-01-21 10:03 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-21 9:21 [GFS2] Pre-pull patch posting swhiteho
[not found] ` <ba7d43779caabf7d3e6c62c3007564cdff351e40.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 01/58] [GFS2] Handle multiple glock demote requests swhiteho
[not found] ` <5eb92fee617a944b989eb07080ceba0350ec291d.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 02/58] [GFS2] Clean up internal read function swhiteho
[not found] ` <5d6eb1480e3e5fb2d833de0cecb5587543c99d7e.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 03/58] [GFS2] Use ->page_mkwrite() for mmap() swhiteho
[not found] ` <fdfa2222cde4496cdff43faf8fa4722e53338f54.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` swhiteho [this message]
[not found] ` <987cf4ac1626fc46b738dc2e2aed6128fde709b9.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 05/58] [GFS2] Remove unused field in struct gfs2_inode swhiteho
[not found] ` <84de47e81185234c2e5c7c04af1f95d17d9ae5dd.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 06/58] [GFS2] Add gfs2_is_writeback() swhiteho
[not found] ` <3efb2aab4ef70fd3c5062d3cae1fdc7201943193.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 07/58] [GFS2] Introduce gfs2_set_aops() swhiteho
[not found] ` <ec596658f8ed9596efa3d0b406a3d5c47da7ff58.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 08/58] [GFS2] Split gfs2_writepage into three cases swhiteho
[not found] ` <e00203790f1de31add36d27cb8f8323f8852bd4b.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 09/58] [GFS2] Add writepages for GFS2 jdata swhiteho
[not found] ` <c43aab67fce17cfb5b5ce2df6364cd915ff9b743.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 10/58] [GFS2] Don't hold page lock when starting transaction swhiteho
[not found] ` <f7271f95d9eb94f98737e2f14907f1fefaa20127.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 11/58] [GFS2] Use correct include file in ops_address.c swhiteho
[not found] ` <2b2ccd5cd38298d4b6ed1b07d09bac437e8e2742.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 12/58] [GFS2] Remove unused variables swhiteho
[not found] ` <e3723cd69be7f7d85b27127cf92380faa55258f4.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 13/58] [GFS2] Remove "reclaim limit" swhiteho
[not found] ` <c22f2c89becb248eb154146a842b1b158dbc291e.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 14/58] [GFS2] Add sync_page to metadata address space operations swhiteho
[not found] ` <9e33b02006aaf5de7a99571d6c2da48141b68475.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 15/58] [GFS2] Reorder writeback for glock sync swhiteho
[not found] ` <344c0973a755378c913d9e6a71630ed909aaec2f.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 16/58] [GFS2] Remove flags no longer required swhiteho
[not found] ` <1083867ce6c8bee18b9e8894b789ce1d0368e23b.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 17/58] [GFS2] Given device ID rather than s_id in "id" sysfs file swhiteho
[not found] ` <efa04e414fd6216d16e067a3bced8163c6197376.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 18/58] [GFS2] check kthread_should_stop when waiting swhiteho
[not found] ` <1d5e5b3757b8692881c10e0e47665de9a1b6d247.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 19/58] [GFS2] Don't add glocks to the journal swhiteho
[not found] ` <c8ee33b1cb02b568a26a56d4fb46920578b509e4.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 20/58] [GFS2] Use atomic_t for journal free blocks counter swhiteho
[not found] ` <3072834a761178bb7edcecc00c9b5aa1b439de51.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 21/58] [GFS2] Move gfs2_logd into log.c swhiteho
[not found] ` <5b772c19c74692e7f5f3d99002aadf844130587e.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 22/58] [GFS2] Don't periodically update the jindex swhiteho
[not found] ` <d9520a457c5ffccfc49dc541c32504a8229e0add.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 23/58] [GFS2] Check for installation of mount helpers for DLM mounts swhiteho
[not found] ` <edc7d54bfba582d1815ad00ffe9f7faff9d51ba0.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 24/58] [GFS2] tidy up error message swhiteho
[not found] ` <54ef8f1d6dc14b392540209198dce8f21e01dbae.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 25/58] [GFS2] Fix runtime issue with UP kernels swhiteho
[not found] ` <be5784b198847d5cdfa103c6882383c11eb6d7d2.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 26/58] [GFS2] Revise gfs2_logd and flush thresholds swhiteho
[not found] ` <406c292988bbf9cab8eb8b83e290c1f44151f76f.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 27/58] [GFS2] remove unnecessary permission checks swhiteho
[not found] ` <11258dc52a0dec585f009e85ba7289e2cbead850.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 28/58] [GFS2] Fix build warnings swhiteho
[not found] ` <cc2cd5260a4f2ca55ba561fa08539f86c304d872.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 29/58] [GFS2] Remove unrequired code swhiteho
[not found] ` <227a0179e629becefe2057de1af20b1881226067.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 30/58] [GFS2] Remove lock methods for lock_nolock protocol swhiteho
[not found] ` <43ddd9bb92c549ac3e7021a1ae5f4657a162c878.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 31/58] [GFS2] patch to check for recursive lock requests in gfs2_rename code path swhiteho
[not found] ` <247dc1e2ac7f0af8393a0514fc7db99cf6142747.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 32/58] [GFS2] Remove unused variable swhiteho
[not found] ` <ab3bb4dcd58fb0236e220007044ea74b3ca714e7.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 33/58] [GFS2] use pid for plock owner for nfs clients swhiteho
[not found] ` <56ee48574f36af5149e578772604f71d184ff1be.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 34/58] [GFS2] Remove function gfs2_get_block swhiteho
[not found] ` <c88670144f90a2d52cc7c80057cf4f5a9b1ce7b5.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 35/58] [GFS2] Fix typo in log.c swhiteho
[not found] ` <fb8217df7708e3f6d72442476d2b25178db21a66.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 36/58] [GFS2] Journal extent mapping swhiteho
[not found] ` <0c49902611713aaaa068bd588b88299e19c8ce71.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 37/58] [GFS2] Get rid of useless "found" variable in quota.c swhiteho
[not found] ` <b9c762a12de432548486e9b3ec0a5b657d3fd00a.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 38/58] [GFS2] Run through full bitmaps quicker in gfs2_bitfit swhiteho
[not found] ` <beb922fe3a443dba9e6c23f30689d5f2f0adeca1.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 39/58] [GFS2] Reorganize function gfs2_glmutex_lock swhiteho
[not found] ` <c5ea4a39fe373c8baa74e7a85942d2b959b8f190.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 40/58] [GFS2] Only fetch the dinode once in block_map swhiteho
[not found] ` <45b8feb4ecf3b4fecdfad14337e64fccae811763.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:21 ` [PATCH 41/58] [GFS2] Function meta_read optimization swhiteho
[not found] ` <dc29b5db8bbc2422deeaa86806b18b9d72dff824.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 42/58] [GFS2] Incremental patch to fix compiler warning swhiteho
[not found] ` <74bfe16e314ed23a9633debae6a1db7c19202208.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 43/58] [GFS2] Eliminate the no longer needed sd_statfs_mutex swhiteho
[not found] ` <b8ee332646d8dd1fb5ea64063ac9d6b804e1652b.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 44/58] [GFS2] Minor correction swhiteho
[not found] ` <50ab1e5a407b4e8b1dd9b26e5841965300c17af0.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 45/58] [GFS2] Fix log block mapper swhiteho
[not found] ` <265b3e84047d5333b9d35417d136e15e80ecefba.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 46/58] [GFS2] Remove unused variable swhiteho
[not found] ` <21533d0d9964d00cc9a39a175da1dc77d9a0a877.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 47/58] [GFS2] Allow page migration for writeback and ordered pages swhiteho
[not found] ` <c9d42363fcc84800dfccec017bff2801da604adc.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 48/58] [GFS2] Initialize extent_list earlier swhiteho
[not found] ` <b526ae07f31beb4a17525805f3dfff25465dd02f.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 49/58] [GFS2] Fix problems relating to execution of files on GFS2 swhiteho
[not found] ` <db2dea335b81b73a856d2dc5bcb13201be4d56e6.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 50/58] [GFS2] Fix assert in log code swhiteho
[not found] ` <708a52fa14264415fbab6e6ba3d3630f464fa062.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 51/58] [GFS2] Reduce inode size by moving i_alloc out of line swhiteho
[not found] ` <9f67c39fd54bd4d77d494854e1a7de0a8afb46aa.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 52/58] [GFS2] Remove unneeded i_spin swhiteho
[not found] ` <51b22fb453b7c234ecfee616047d2ccc6ec77f11.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 53/58] [GFS2] gfs2_alloc_required performance swhiteho
[not found] ` <bf67702abc309510aad346d4c9511439366f3a2d.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 54/58] [GFS2] Fix write alloc required shortcut calculation swhiteho
[not found] ` <c2df7196bc9e5f059d0b835cc4ddd37b5a654d5b.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 55/58] [GFS2] Fix typo swhiteho
[not found] ` <3fa0be40338b94030dcf4794198c65cc99e260fa.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 56/58] [GFS2] Fix page_mkwrite truncation race path swhiteho
[not found] ` <7244134b8007d7ec8f2a93d039a3bb6720e2466f.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 57/58] [GFS2] Lockup on error swhiteho
[not found] ` <7ecd8d8b2b13714181d4ae3bde6ce4005e5a304e.1200905287.git.swhiteho@redhat.com>
2008-01-21 9:22 ` [PATCH 58/58] [GFS2] Allow journal recovery on read-only mount swhiteho
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=12009073492811-git-send-email-swhiteho@redhat.com \
--to=swhiteho@redhat.com \
--cc=cluster-devel@redhat.com \
--cc=linux-kernel@vger.kernel.org \
/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