From: Steven Whitehouse [EMAIL PROTECTED]
The following patch fixes a bug where 0 was being used as a return code
to indicate nothing to do when in fact 0 was a valid block location
which might be returned by the function.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git
From: Steven Whitehouse [EMAIL PROTECTED]
Due to a mix up between the jdata attribute and inherit jdata attribute
it has not been possible to set the inherit jdata attribute on
directories. This is now fixed and the ioctl will report the inherit
jdata attribute for directories rather than the
From: Steven Whitehouse [EMAIL PROTECTED]
This reverts commit 569a7b6c2e8965ff4908003b925757703a3d649c. The
code was correct originally. The default setting for ACLs after a
remount should be to be the same as before the remount.
Signed-off-by: Abhijith Das [EMAIL PROTECTED]
Signed-off-by:
From: Steven Whitehouse [EMAIL PROTECTED]
One of the races relates to referencing a variable while not holding
its protecting spinlock. The patch simply moves the test inside the
spin lock. The other races occurs when a demote to unlocked request
occurs during the time a demote to shared request
Hi,
Since it seems that another merge window will probably be opening shortly
this is a posting of the current content of the GFS2/DLM -nmw git tree.
There are no new features this time, its all fixes and cleanups. I have
a few patches that I'm holding back which I'm intending to start off
the
From: Bob Peterson [EMAIL PROTECTED]
This is the first of five patches for bug #248176:
There were still some critical variables being manipulated outside
the log_lock spinlock. That usually resulted in a hang.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse
From: Bob Peterson [EMAIL PROTECTED]
This is patch three of five for bug #248176.
The try_rgrp_unlink code in rgrp.c had an infinite loop. This was
caused because the bitmap function rgblk_search can return a block
less than the goal block, in which case it was looping. The fix is
to make it
From: Denis Cheng [EMAIL PROTECTED]
this is more clear.
Signed-off-by: Denis Cheng [EMAIL PROTECTED]
Signed-off-by: David Teigland [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/locking/dlm/plock.c b/fs/gfs2/locking/dlm/plock.c
index fba1f1d..1f7b038
From: Bob Peterson [EMAIL PROTECTED]
This is patch 5 of 5 for bug #248176
Metadata corruption was occurring because page references weren't
being removed in all cases. I previously added a function called
detach_bufdata, but I discovered there already WAS a function out
there to do the job.
From: Steven Whitehouse [EMAIL PROTECTED]
We only need a single gfs2_scand process rather than the one
per filesystem which we had previously. As a result the parameter
determining the frequency of gfs2_scand runs becomes a module
parameter rather than a mount parameter as it was before.
From: Bob Peterson [EMAIL PROTECTED]
This is for bugzilla bug #248176: GFS2: invalid metadata block
Patches 1 thru 3 were accepted upstream, but there were problems
with 4 and 5. Those issues have been resolved and now the recovery
tests are passing without errors. This code has gone through
From: Steven Whitehouse [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/ops_address.c b/fs/gfs2/ops_address.c
index 4002f41..873a511 100644
--- a/fs/gfs2/ops_address.c
+++ b/fs/gfs2/ops_address.c
@@ -747,7 +747,7 @@ int gfs2_releasepage(struct page
From: Steven Whitehouse [EMAIL PROTECTED]
Both the revoke structure and the bufdata structure are quite similar.
They are basically small tags which are put on lists. In addition to
which the revoke structure is always allocated when there is a bufdata
structure which is (or can be) freed. As
From: Steven Whitehouse [EMAIL PROTECTED]
gfs2_pin and gfs2_unpin are only used in lops.c, despite being
defined in meta_io.c, so this patch moves them into lops.c and
makes them static. At the same time, its possible to clean up
the locking in the buf and databuf _lo_add() functions so that
we
From: Abhijith Das [EMAIL PROTECTED]
With this patch, gfs2 glockdump through the debugfs filesystem will only
dump glocks for the specified filesystem instead of all glocks. Also, to
aid debugging, the glock number is dumped in hex instead of decimal.
Signed-off-by: Steven Whitehouse [EMAIL
From: Wendy Cheng [EMAIL PROTECTED]
Current GFS2 setattr call unconditionally invokes do_shrink even the
requested size and actual file size are equal. This has generated large
amount of extra IOs found during NFS benchmark runs. This patch moves
the relevant logic out of shrink code path. Since
From: Abhijith Das [EMAIL PROTECTED]
This is the filesystem part of the patches to fix this bz. There are
additional userland patches (gfs2_quota, libgfs2) for the complete
solution. This patch adds a new field qu_ll_next to the gfs2_quota
structure. This field allows us to create linked lists of
From: Denis Cheng [EMAIL PROTECTED]
sb-s_fs_info is a void pointer, thus the type cast is not needed.
Signed-off-by: Denis Cheng [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 32b2859..25cfab9 100644
---
From: Denis Cheng [EMAIL PROTECTED]
the original code could work, but I think this code could work better.
Signed-off-by: Denis Cheng [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 25cfab9..6c820cb 100644
---
From: Steven Whitehouse [EMAIL PROTECTED]
This was missing from the dir_split_leaf() function although in
most cases its not a problem due to other functions having
already previously called gfs2_trans_add_bh. This makes certain
that it is correct.
Signed-off-by: Steven Whitehouse [EMAIL
From: Bob Peterson [EMAIL PROTECTED]
This is a patch to GFS2 to protect sd_log_num_jdata with the
gfs2_log_lock. Without this patch, there is a timing window
where you can get hit the following assert from function
gfs2_log_flush():
gfs2_assert_withdraw(sdp,
From: Wendy Cheng [EMAIL PROTECTED]
Fix a nasty inode meta data corruption issue by keeping the buffer head in
icache array. This buffer needs to stay in memory until journal flush occurs
Otherwise, gfs2_meta_inode_buffer could do a disk read before the inode hits
disk. It ends up with meta data
From: Steven Whitehouse [EMAIL PROTECTED]
This collects together the operations required to remove a gfs2_bufdata
from the ail lists. Its only called from two places to start with, but
expect to see more of this function in future.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git
From: Benjamin Marzinski [EMAIL PROTECTED]
When a lot of IO, with some distributed mmap IO, is run on a GFS2 filesystem in
a cluster, it will deadlock. The reason is that do_no_page() will repeatedly
call gfs2_sharewrite_nopage(), because each node keeps giving up the glock
too early, and is
From: Steven Whitehouse [EMAIL PROTECTED]
The old revoke structure was allocated using kalloc/kfree but
there is a slab cache for gfs2_bufdata, so we should use that
now that the structures have been converted.
This is part two of the patch series to merge the revoke
and gfs2_bufdata structures.
From: Steven Whitehouse [EMAIL PROTECTED]
The following alters gfs2_trans_add_revoke() to take a struct
gfs2_bufdata as an argument. This eliminates the memory allocation which
was previously required by making use of the already existing struct
gfs2_bufdata. It makes some sanity checks to ensure
From: Wendy Cheng [EMAIL PROTECTED]
Move inode deletion code out of blocking_cb handle_callback route to
avoid racy conditions that end up blocking lock_dlm1 thread. Fix
bugzilla 286821.
Signed-off-by: Wendy Cheng [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git
From: Bob Peterson [EMAIL PROTECTED]
The problem boiled down to a race between the gdlm_init_threads()
function initializing thread1 and its setting of blist = 1.
Essentially, if (current == ls-thread1) was checked by the thread
before the thread creator set ls-thread1.
Since thread1 is the only
From: Benjamin Marzinski [EMAIL PROTECTED]
There is a possible deadlock between two processes on the same node, where one
process is deleting an inode, and another process is looking for allocated but
unused inodes to delete in order to create more space.
process A does an iput() on inode X, and
From: Steven Whitehouse [EMAIL PROTECTED]
The mapping may be NULL by the time the I/O has completed, so
we now get the superblock by a different route (via the bd and glock)
to avoid this problem.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
Cc: Wendy Cheng [EMAIL PROTECTED]
diff --git
From: Steven Whitehouse [EMAIL PROTECTED]
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
From: Steven Whitehouse [EMAIL PROTECTED]
There was a bug in the truncation/invalidation race path for
-page_mkwrite for gfs2. It ought to return 0 so that the effect is the
same as if the page was truncated at any of the other points at which
the page_lock is dropped. This will result in the
From: Bob Peterson [EMAIL PROTECTED]
This is a small I/O performance enhancement to gfs2. (Actually, it is a rework
of
an earlier version I got wrong). The idea here is to check if the write extends
past the last block in the file. If so, the function can save itself a lot of
time and trouble
From: Bob Peterson [EMAIL PROTECTED]
This just eliminates an unused variable from the quota code.
Not likely to be a time saver.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
index 8b4c20c..60cc50f
From: Bob Peterson [EMAIL PROTECTED]
This patch eliminates the unneeded sd_statfs_mutex mutex but preserves
the ordering as discussed.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index
From: Bob Peterson [EMAIL PROTECTED]
This patch saves a little time when gfs2 writes to the journals by
keeping a mapping between logical and physical blocks on disk.
That's better than constantly looking up indirect pointers in
buffers, when the journals are several levels of indirection
(which
From: Steven Whitehouse [EMAIL PROTECTED]
An inequality was the wrong way around causing gfs2_logd to wake
up too often. This fixes it.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c
index 7f9ab89..9bece94 100644
--- a/fs/gfs2/log.c
+++
From: Fabio Massimo Di Nitto [EMAIL PROTECTED]
Hi Steven,
Steven Whitehouse wrote:
Hi,
Now in the -nmw git tree. Thanks,
Steve.
On Wed, 2007-11-21 at 11:54 -0600, Ryan O'Hara wrote:
this patch introduces a bunch of build warnings by leaving around
struct inode *inode = ip-i_inode;
The
From: Steven Whitehouse [EMAIL PROTECTED]
The only reason for adding glocks to the journal was to keep track
of which locks required a log flush prior to release. We add a
flag to the glock to allow this check to be made in a simpler way.
This reduces the size of a glock (by 12 bytes on i386, 24
From: Steven Whitehouse [EMAIL PROTECTED]
Previously we were doing (write data, wait for data, write metadata, wait
for metadata). After this patch we so (write metadata, write data, wait for
data, wait for metadata) which should be more efficient.
Also I noticed that the drop_bh and xmote_bh
From: Steven Whitehouse [EMAIL PROTECTED]
Something changed in the upstream kernel, and it needs this
one-liner to allow ops_address.c to build.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/ops_address.c b/fs/gfs2/ops_address.c
index ae782d2..7353933 100644
---
From: Steven Whitehouse [EMAIL PROTECTED]
This is an addendum to the new AOPs work which moves the point
at which we take the page lock so that we don't get it until
the last possible moment. This resolves a conflict between
starting transactions and the page lock.
Signed-off-by: Steven
From: Steven Whitehouse [EMAIL PROTECTED]
This adds a function gfs2_is_writeback() along the lines of the
existing gfs2_is_jdata() in order to clean up the code and make
the various tests for the inode mode more obvious. It also fixes
the PageChecked() logic where we were resetting the flag too
From: Steven Whitehouse [EMAIL PROTECTED]
Removes a field that is not used.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index 5662ff9..e53da7d 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -274,7 +274,6 @@ struct gfs2_inode {
From: Bob Peterson [EMAIL PROTECTED]
Function gfs2_block_map was often looking up the disk inode twice.
This optimizes it so that only does it once.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
Hi,
Here is the current GFS2 patch queue. You'll notice that this time
there are no DLM patches in this list. That is because the DLM team
are setting up their own git tree and this future DLM patches will
be sent directly by them rather than via the GFS2 tree.
Most of this set of patches is
From: Steven Whitehouse [EMAIL PROTECTED]
This call to reclaim glocks is not needed, and in particular we don't want it
in the fast path for locking glocks. The limit was entirely arbitrary anyway
and we can't expect users to adjust things like this, the remaining code will
do the right thing on
From: Steven Whitehouse [EMAIL PROTECTED]
This set of address space operations was missing a sync_page
operation.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c
index 01ef902..4b1aced 100644
--- a/fs/gfs2/meta_io.c
+++ b/fs/gfs2/meta_io.c
From: Steven Whitehouse [EMAIL PROTECTED]
The HIF_MUTEX and HIF_PROMOTE flags were set on the glock holders
depending upon which of the two waiters lists they were going to
be queued upon. They were then tested when the holders were taken
off the lists to ensure that the right type of holder was
From: Bob Peterson [EMAIL PROTECTED]
This patch changes the /sys/fs/gfs2/s_id/id file to give the device
id major:minor rather than the s_id. That enables gfs2_tool to
match devices properly (by id, not name) when locating the tuning files.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
From: David Teigland [EMAIL PROTECTED]
Use wait_event_interruptible() in the lock_dlm thread instead
of an open coded equivalent, and include a kthread_should_stop()
check in the wait test so we don't miss a kthread_stop().
Signed-off-by: David Teigland [EMAIL PROTECTED]
Signed-off-by: Steven
From: Steven Whitehouse [EMAIL PROTECTED]
This patch changes the counter which keeps track of the free
blocks in the journal to an atomic_t in preparation for the
following patch which will update the log reservation code.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git
From: Fabio Massimo Di Nitto [EMAIL PROTECTED]
The issue is indeed UP vs SMP and it is totally random.
spin_is_locked() is a bad assertion because there is no correct answer on UP.
on UP spin_is_locked() has to return either one value or another, always.
This means that in my setup I am lucky
From: Steven Whitehouse [EMAIL PROTECTED]
This patch intriduces two new log thresholds:
o thresh1 is the point at which we wake up gfs2_logd due to the pinned
block count. It is initialised at mount time to 2/5ths of the size
of the journal. Currently it does not change during the course
From: David Teigland [EMAIL PROTECTED]
The fl_owner is that of lockd when posix locks arrive from nfs
clients, so it can't be used to distinguish between lock holders.
Use fl_pid as owner instead; it's the pid of the process on the
nfs client.
Signed-off-by: David Teigland [EMAIL PROTECTED]
From: Bob Peterson [EMAIL PROTECTED]
This is a small correction to my previously posted patch1.
It just changes a divide to a shift. It's faster and doesn't
introduce odd dependencies on 32-bit compiles.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL
From: Steven Whitehouse [EMAIL PROTECTED]
A missing offset in the calculation.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c
index 0833e27..40c51bf 100644
--- a/fs/gfs2/log.c
+++ b/fs/gfs2/log.c
@@ -336,7 +336,7 @@ static u64 log_bmap(struct
From: Steven Whitehouse [EMAIL PROTECTED]
The go_drop_th function is never called or referenced.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index 9a83429..c85f4fd 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -131,7 +131,6 @@
From: Steven Whitehouse [EMAIL PROTECTED]
To improve performance on NUMA, we use the VM's standard page
migration for writeback and ordered pages. Probably we could
also do the same for journaled data, but that would need a
careful audit of the code, so will be the subject of a later
patch.
From: Bob Peterson [EMAIL PROTECTED]
Here is a patch for the latest upstream GFS2 code:
The journal extent map needs to be initialized sooner than it
currently is. Otherwise failed mount attempts (e.g. not enough
journals, etc.) may panic trying to access the uninitialized list.
Signed-off-by:
From: Steven Whitehouse [EMAIL PROTECTED]
Although the values were all being calculated correctly, there was a
race in the assert due to the way it was using atomic variables. This
changes the value we assert on so that we get the same effect by testing
a different variable. This prevents the
From: Bob Peterson [EMAIL PROTECTED]
This patch removes a vestigial variable i_spin from the gfs2_inode
structure. This not only saves us memory (30 of these in memory
for the oom test) it also saves us time because we don't have to
spend time initializing it (i.e. slightly better
From: Steven Whitehouse [EMAIL PROTECTED]
The comparison was being made against the wrong quantity.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index 4356cc2..e4effc4 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -1222,10 +1222,10 @@ int
From: Bob Peterson [EMAIL PROTECTED]
This patch fixes a minor typo. Surprisingly, it still compiled.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c
index bc28bc6..99c7959 100644
---
From: Abhijith Das [EMAIL PROTECTED]
This patch allows gfs2 to perform journal recovery even if it is mounted
read-only. Strictly speaking, a read-only mount should not be writing to
the filesystem, but we do this only to perform journal recovery. A
read-only mount will fail if we don't recover
This is a set of five patches which together add extent allocation to
GFS2. Also there is a bit of preliminary clean-up which results in
reducing the size of a gfs2_inode and merging some functions which
were almost identical.
The plan is to change gfs2's bmap functions next to take advantage
of
From: Steven Whitehouse [EMAIL PROTECTED]
We don't need to keep track of when we last allocated data
and metadata separately since the only thing thats important
when searching for a free block is whether its free or not,
which is independent from what type of block it is.
Signed-off-by: Steven
From: Steven Whitehouse [EMAIL PROTECTED]
The blocks counter is almost a duplicate of the i_blocks
field in the VFS inode. The only difference is that i_blocks
can be only 32bits long for 32bit arch without large single file
support. Since GFS2 doesn't handle the non-large single file
case (for
Hi,
This set has a few more cleanups and bug fixes relating to my current
project of updating the block map code. There will be more to follow
in a few days,
Steve.
From: Steven Whitehouse [EMAIL PROTECTED]
This adds a function (currently the only use is during mapping
of already allocated blocks, but watch this space) which iterates
over a number of pointers in a block and returns the extent length.
If the initial pointer is 0 (i.e. unallocated) it will
This is the current content of the GFS2 -nmw git tree. Mostly bug
fixes, there are some changes relating to block mapping which are
working towards cleaning up this code and allowing more efficient
block mapping. There is a second part to that work which is not
included in this patch set - the
From: Steven Whitehouse [EMAIL PROTECTED]
This patch removes the call to gfs2_extent_map from gfs2_write_alloc_required,
instead we call gfs2_block_map directly. This results in fewer overall calls
to gfs2_block_map in the multi-block case.
Also, gfs2_extent_map is marked as deprecated so that
From: Bob Peterson [EMAIL PROTECTED]
This patch is performance related. When we're doing a log flush,
I noticed we were calling buf_lo_incore_commit twice: once for
data bufs and once for metadata bufs. Since this is the same
function and does the same thing in both cases, there should be
no
From: Bob Peterson [EMAIL PROTECTED]
This patch contains two small fixups that didn't fit elsewhere.
They are: (1) get rid of temp variable in find_metapath.
(2) Remove vestigial ret variable from gfs2_writepage_common.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven
From: Bob Peterson [EMAIL PROTECTED]
This patch only wakes up the glock reclaim daemon if there is
actually something to be reclaimed.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index
From: Adrian Bunk [EMAIL PROTECTED]
gfs2_glock_hold() can now become static.
Signed-off-by: Adrian Bunk [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index 5752dec..befcda0 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
From: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c
index 7138737..4390f6f 100644
--- a/fs/gfs2/lops.c
+++ b/fs/gfs2/lops.c
@@ -404,8 +404,10 @@ static int
From: Bob Peterson [EMAIL PROTECTED]
This patch moves the gfs2_rgrpd structure to its own slab
memory. This makes it easier to control and monitor, and
yields less memory fragmentation.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git
From: Bob Peterson [EMAIL PROTECTED]
This patch reduces memory by replacing the int variable
gl_waiters2 by a single bit in the gl_flags.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index
From: Steven Whitehouse [EMAIL PROTECTED]
This is required to enable future changes to the block
mapping code.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index e84e384..08d1be4 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -384,6
From: Steven Whitehouse [EMAIL PROTECTED]
The reason for doing this is to allow all the block mapping code
to share the same array. As a result we can remove two arguments
from lookup_metapath since they are now returned via the array.
We also add a function to drop all refs to buffer heads when
From: Steven Whitehouse [EMAIL PROTECTED]
There are a couple of routines which scan bitmaps where we can
mark the bitmaps const, plus a couple of call sites that can
be updated too.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index
From: Bob Peterson [EMAIL PROTECTED]
This patch further reduces the memory needs of GFS2 by
eliminating the gl_req_bh variable from struct gfs2_glock.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
From: Bob Peterson [EMAIL PROTECTED]
This patch further reduces GFS2's memory requirements by
eliminating the 64-bit version number fields in lieu of
a couple bits.
Signed-off-by: Bob Peterson [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/glock.c
From: Abhijith Das [EMAIL PROTECTED]
This patch combines the 2 patches in bug 434736 to correct the lock
ordering in the unstuffing of the quota inode in gfs2_adjust_quota and
adjusting the number of revokes in gfs2_write_jdata_pagevec
Signed-off-by: Abhijith Das [EMAIL PROTECTED]
Signed-off-by:
From: Cyrill Gorcunov [EMAIL PROTECTED]
gfs2_alloc_get may fail so we have to check it to prevent
NULL pointer dereference.
Signed-off-by: Cyrill Gorcunov [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index c1ee635..f7093aa
From: Steven Whitehouse [EMAIL PROTECTED]
In an earlier patch [GFS2] fix file_system_type leak on gfs2meta mount
we removed the code to grab a ref to the module which was not needed
(since we know that the module cannot be unloaded at that time) so
this patch removes the code to drop that
From: Steven Whitehouse [EMAIL PROTECTED]
This patch streamlines the quota checking in the no quota case by
making the check inline in the calling function, thus reducing the
number of function calls. Eventually we might be able to remove the
checks from the gfs2_quota_lock() and
From: Bob Peterson [EMAIL PROTECTED]
This version of the gfs2_bitfit algorithm includes the latest
suggestions from Steve Whitehouse. It is typically eight to
ten times faster than the version we're using today. If there
is a lot of metadata mixed in (lots of small files) the
algorithm is often
From: Steven Whitehouse [EMAIL PROTECTED]
We need to ensure that sector_t is 64bits for GFS2, so that we need to
depend on LBD as well as LSF.
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/Kconfig b/fs/gfs2/Kconfig
index d147b53..7f7947e 100644
--- a/fs/gfs2/Kconfig
From: Steven Whitehouse [EMAIL PROTECTED]
By adding an extra argument to gfs2_trans_add_unrevoke we can now
specify an extent length of blocks to unrevoke. This means that
we only need to make one pass through the list for each extent
rather than each block. Currently the only extent length which
From: Steven Whitehouse [EMAIL PROTECTED]
This adds a function (currently the only use is during mapping
of already allocated blocks, but watch this space) which iterates
over a number of pointers in a block and returns the extent length.
If the initial pointer is 0 (i.e. unallocated) it will
From: Steven Whitehouse [EMAIL PROTECTED]
Thanks to the preceeding patches, the only difference between
these two functions is their name. We can thus merge them
and call the new function gfs2_alloc_block to reflect the
fact that it can allocate either kind of block.
Signed-off-by: Steven
From: Adrian Bunk [EMAIL PROTECTED]
This patch adds a proper extern declaration for gdlm_ops in
fs/gfs2/locking/dlm/lock_dlm.h
Signed-off-by: Adrian Bunk [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/locking/dlm/lock_dlm.h
From: Denis Cheng [EMAIL PROTECTED]
struct inode_operations gfs2_dev_iops is always the same as gfs2_file_iops,
since Jan 2006, when GFS2 merged into mainstream kernel.
So one of them could be removed.
Signed-off-by: Denis Cheng [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL
From: Steven Whitehouse [EMAIL PROTECTED]
In the case that we needed to grow the height of the metadata tree
we were looking up the inode buffer and then brelse()ing it despite
the fact that it is needed later in the block map process.
This patch ensures that we look up the inode's buffer once
From: Steven Whitehouse [EMAIL PROTECTED]
There were three fields being used to keep track of the location
of the most recently allocated block for each inode. These have
been merged into a single field in order to better keep the
data and metadata for an inode close on disk, and also to reduce
From: Steven Whitehouse [EMAIL PROTECTED]
Rather than having to allocate a single block at a time, this patch
allows the block allocator to allocate an extent. Since there is
no difference (so far as the block allocator is concerned) between
data blocks and indirect blocks, it is posible to
From: Christoph Hellwig [EMAIL PROTECTED]
get_gfs2_sb does a get_fs_type without doing a put_filesystem and
thus leaking a file_system_type reference everytime it's called.
Just use gfs2_fs_type directly instead of doing the lookup and thus
fix the problem.
Signed-off-by: Christoph Hellwig
From: Jean Delvare [EMAIL PROTECTED]
strlcpy is faster than snprintf when you don't use the returned value.
Signed-off-by: Jean Delvare [EMAIL PROTECTED]
Signed-off-by: Steven Whitehouse [EMAIL PROTECTED]
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index ef9c6c4..b2028c8 100644
---
1 - 100 of 155 matches
Mail list logo