[Cluster-devel] [PATCH] [GFS2] Fix incorrect return code in rgrp.c

2007-08-14 Thread swhiteho
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

[Cluster-devel] [PATCH] [GFS2] Fix setting of inherit jdata attr

2007-08-14 Thread swhiteho
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

[Cluster-devel] [PATCH] [GFS2] Revert remounting w/o acl option leaves acls enabled

2007-08-14 Thread swhiteho
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:

[Cluster-devel] [PATCH 01/51] [GFS2] Fix two races relating to glock callbacks

2007-10-04 Thread swhiteho
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

[Cluster-devel] [GFS2/DLM] Pre-pull patch posting

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 06/51] [GFS2] Move some code inside the log lock

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 08/51] [GFS2] Prevent infinite loop in try_rgrp_unlink()

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 09/51] [GFS2] use an temp variable to reduce a spin_unlock

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 10/51] [GFS2] Detach buf data during in-place writeback

2007-10-04 Thread swhiteho
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.

[Cluster-devel] [PATCH 13/51] [GFS2] Reduce number of gfs2_scand processes to one

2007-10-04 Thread swhiteho
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.

[Cluster-devel] [PATCH 15/51] [GFS2] Ensure journal file cache is flushed after recovery

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 48/51] [GFS2] Don't try to remove buffers that don't exist

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 38/51] [GFS2] Replace revoke structure with bufdata structure

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 35/51] [GFS2] Move pin/unpin into lops.c, clean up locking

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 27/51] [GFS2] Wendy's dump lockname in hex fix glock dump

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 25/51] [GFS2] Reduce truncate IO traffic

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 21/51] [GFS2] Fix quota do_list operation hang

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 17/51] [GFS2] unneeded typecast

2007-10-04 Thread swhiteho
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 ---

[Cluster-devel] [PATCH 18/51] [GFS2] better code for translating characters

2007-10-04 Thread swhiteho
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 ---

[Cluster-devel] [PATCH 23/51] [GFS2] Add a missing gfs2_trans_add_bh()

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 28/51] [GFS2] Patch to protect sd_log_num_jdata

2007-10-04 Thread swhiteho
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,

[Cluster-devel] [PATCH 31/51] [GFS2] fix inode meta data corruption

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 33/51] [GFS2] Introduce gfs2_remove_from_ail

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 30/51] [GFS2] delay glock demote for a minimum hold time

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 39/51] [GFS2] Use slab operations for all gfs2_bufdata allocations

2007-10-04 Thread swhiteho
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.

[Cluster-devel] [PATCH 40/51] [GFS2] Clean up gfs2_trans_add_revoke()

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 42/51] [GFS2] Move inode deletion out of blocking_cb

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 44/51] [GFS2] GFS2: chmod hung - fix race in thread creation

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 47/51] [GFS2] Alternate gfs2_iget to avoid looking up inodes being freed

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 49/51] [GFS2] Get superblock a different way

2007-10-04 Thread swhiteho
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

[Cluster-devel] [PATCH 04/58] [GFS2] Remove useless i_cache from inodes

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 56/58] [GFS2] Fix page_mkwrite truncation race path

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 53/58] [GFS2] gfs2_alloc_required performance

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 37/58] [GFS2] Get rid of useless found variable in quota.c

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 43/58] [GFS2] Eliminate the no longer needed sd_statfs_mutex

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 36/58] [GFS2] Journal extent mapping

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 35/58] [GFS2] Fix typo in log.c

2008-01-21 Thread swhiteho
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 +++

[Cluster-devel] [PATCH 28/58] [GFS2] Fix build warnings

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 19/58] [GFS2] Don't add glocks to the journal

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 15/58] [GFS2] Reorder writeback for glock sync

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 11/58] [GFS2] Use correct include file in ops_address.c

2008-01-21 Thread swhiteho
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 ---

[Cluster-devel] [PATCH 10/58] [GFS2] Don't hold page lock when starting transaction

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 06/58] [GFS2] Add gfs2_is_writeback()

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 05/58] [GFS2] Remove unused field in struct gfs2_inode

2008-01-21 Thread swhiteho
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 {

[Cluster-devel] [PATCH 40/58] [GFS2] Only fetch the dinode once in block_map

2008-01-21 Thread swhiteho
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

[Cluster-devel] [GFS2] Pre-pull patch posting

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 13/58] [GFS2] Remove reclaim limit

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 14/58] [GFS2] Add sync_page to metadata address space operations

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 16/58] [GFS2] Remove flags no longer required

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 17/58] [GFS2] Given device ID rather than s_id in id sysfs file

2008-01-21 Thread swhiteho
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]

[Cluster-devel] [PATCH 18/58] [GFS2] check kthread_should_stop when waiting

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 20/58] [GFS2] Use atomic_t for journal free blocks counter

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 25/58] [GFS2] Fix runtime issue with UP kernels

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 26/58] [GFS2] Revise gfs2_logd and flush thresholds

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 33/58] [GFS2] use pid for plock owner for nfs clients

2008-01-21 Thread swhiteho
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]

[Cluster-devel] [PATCH 44/58] [GFS2] Minor correction

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 45/58] [GFS2] Fix log block mapper

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 46/58] [GFS2] Remove unused variable

2008-01-21 Thread swhiteho
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 @@

[Cluster-devel] [PATCH 47/58] [GFS2] Allow page migration for writeback and ordered pages

2008-01-21 Thread swhiteho
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.

[Cluster-devel] [PATCH 48/58] [GFS2] Initialize extent_list earlier

2008-01-21 Thread swhiteho
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:

[Cluster-devel] [PATCH 50/58] [GFS2] Fix assert in log code

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 52/58] [GFS2] Remove unneeded i_spin

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 54/58] [GFS2] Fix write alloc required shortcut calculation

2008-01-21 Thread swhiteho
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

[Cluster-devel] [PATCH 55/58] [GFS2] Fix typo

2008-01-21 Thread swhiteho
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 ---

[Cluster-devel] [PATCH 58/58] [GFS2] Allow journal recovery on read-only mount

2008-01-21 Thread swhiteho
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

[Cluster-devel] [GFS2] Patches to add extent allocation to GFS2

2008-02-06 Thread swhiteho
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

[Cluster-devel] [PATCH 2/5] [GFS2] Merge the rd_last_alloc_meta and rd_last_alloc_data fields

2008-02-06 Thread swhiteho
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

[Cluster-devel] [PATCH 2/4] [GFS2] Eliminate (almost) duplicate field from gfs2_inode

2008-02-12 Thread swhiteho
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

[Cluster-devel] [GFS2] More cleanup/bug fixes

2008-02-12 Thread swhiteho
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.

[Cluster-devel] [PATCH 1/4] [GFS2] Add a function to interate over an extent

2008-02-12 Thread swhiteho
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

[Cluster-devel] [GFS2] Pre-pull patch posting

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 01/48] [GFS2] Speed up gfs2_write_alloc_required, deprecate gfs2_extent_map

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 05/48] [GFS2] Only do lo_incore_commit once

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 06/48] [GFS2] Misc fixups

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 07/48] [GFS2] Only wake the reclaim daemon if we need to

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 08/48] [GFS2] make gfs2_glock_hold() static

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 09/48] [GFS2] Plug an unlikely leak

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 10/48] [GFS2] Allocate gfs2_rgrpd from slab memory

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 12/48] [GFS2] Get rid of gl_waiters2

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 13/48] [GFS2] Move part of gfs2_block_map into a separate function

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 14/48] [GFS2] Introduce array of buffers to struct metapath

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 15/48] [GFS2] Add consts to various bits of rgrp.c

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 16/48] [GFS2] Eliminate gl_req_bh

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 18/48] [GFS2] Remove rgrp and glock version numbers

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 41/48] [GFS2] gfs2_adjust_quota has broken unstuffing code

2008-04-17 Thread swhiteho
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:

[Cluster-devel] [PATCH 40/48] [GFS2] possible null pointer dereference fixup

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 42/48] [GFS2] Remove drop of module ref where not needed

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 43/48] [GFS2] Streamline quota lock/check for no-quota case

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 44/48] [GFS2] Faster gfs2_bitfit algorithm

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 39/48] [GFS2] Need to ensure that sector_t is 64bits for GFS2

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 23/48] [GFS2] Update gfs2_trans_add_unrevoke to accept extents

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 27/48] [GFS2] Add a function to interate over an extent

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 24/48] [GFS2] Merge gfs2_alloc_meta and gfs2_alloc_data

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 33/48] [GFS2] proper extern for gfs2/locking/dlm/mount.c:gdlm_ops

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 37/48] [GFS2] remove gfs2_dev_iops

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 29/48] [GFS2] Get inode buffer only once per block map call

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 21/48] [GFS2] Reduce inode size by merging fields

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 25/48] [GFS2] Add extent allocation to block allocator

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 36/48] [GFS2] fix file_system_type leak on gfs2meta mount

2008-04-17 Thread swhiteho
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

[Cluster-devel] [PATCH 3/3] [GFS2] Prefer strlcpy() over snprintf()

2008-05-20 Thread swhiteho
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   2   >