[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following fixes for GFS2, Steve. The following changes since commit 372b1dbdd1fb5697890b937228d93cfd9c734c90: Merge branch 'for-linus' of git://git.samba.org/sfrench/cifs-2.6 (2014-08-20 18:33:21 -0500) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git tags/gfs2-fixes for you to fetch changes up to cfb2f9d5c921e38b0f12bb26fed10b87766d: GFS2: fix d_splice_alias() misuses (2014-09-12 20:58:55 +0100) Here are a number of small fixes for GFS2. There is a fix for FIEMAP on large sparse files, a negative dentry hashing fix, a fix for flock, and a bug fix relating to d_splice_alias usage. There are also (patches 1 and 5) a couple of updates which are less critical, but small and low risk. Al Viro (1): GFS2: fix d_splice_alias() misuses Benjamin Coddington (1): GFS2: Hash the negative dentry during inode lookup Bob Peterson (2): GFS2: Change maxlen variables to size_t GFS2: Request demote when a try flock fails Fabian Frederick (1): GFS2: fs/gfs2/super.c: replace seq_printf by seq_puts Jan Kara (1): GFS2: Don't use MAXQUOTAS value fs/gfs2/bmap.c | 9 + fs/gfs2/file.c | 15 --- fs/gfs2/incore.h | 7 +-- fs/gfs2/inode.c | 9 ++--- fs/gfs2/super.c | 20 ++-- 5 files changed, 38 insertions(+), 22 deletions(-) signature.asc Description: This is a digitally signed message part
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following bug fixes, Steve. - The following changes since commit 7e3528c3660a2e8602abc7858b0994d611f74bc3: slab.h: remove duplicate kmalloc declaration and fix kernel-doc warnings (2013-11-24 11:01:16 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git tags/gfs2-fixes for you to fetch changes up to 0b3a2c9968d453d5827e635a6f3d69129f70af66: GFS2: Fix unsafe dereference in dump_holder() (2014-01-02 12:18:04 +) Here is a set of small fixes for GFS2. There is a fix to drop s_umount which is copied in from the core vfs, two patches relate to a hard to hit use after free and memory leak. Two patches related to using DIO and buffered I/O on the same file to ensure correct operation in relation to glock state changes. The final patch adds an RCU read lock to ensure correct locking on an error path. Bob Peterson (2): GFS2: Fix use-after-free race when calling gfs2_remove_from_ail GFS2: Fix slab memory leak in gfs2_bufdata Steven Whitehouse (3): GFS2: don't hold s_umount over blkdev_put GFS2: Fix incorrect invalidation for DIO/buffered I/O GFS2: Wait for async DIO in glock state changes Tetsuo Handa (1): GFS2: Fix unsafe dereference in dump_holder() fs/gfs2/aops.c | 30 ++ fs/gfs2/glock.c | 2 ++ fs/gfs2/glops.c | 10 -- fs/gfs2/log.c| 4 ++-- fs/gfs2/meta_io.c| 5 + fs/gfs2/ops_fstype.c | 12 +++- 6 files changed, 58 insertions(+), 5 deletions(-) signature.asc Description: This is a digitally signed message part
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following fixes, Steve. The following changes since commit ea0341e071527d5cec350917b01ab901af09d758: GFS2: Fix ref count bug relating to atomic_open (2013-11-21 18:47:57 +) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git tags/gfs2-fixes for you to fetch changes up to ea0341e071527d5cec350917b01ab901af09d758: GFS2: Fix ref count bug relating to atomic_open (2013-11-21 18:47:57 +) A couple of small, but important bug fixes for GFS2. The first one fixes a possible NULL pointer dereference, and the second one resolves a reference counting issue in one of the lesser used paths through atomic_open. fs/gfs2/glock.c |3 ++- fs/gfs2/inode.c |5 - 2 files changed, 6 insertions(+), 2 deletions(-) signature.asc Description: This is a digitally signed message part
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following changes, Steve. - Out of these five patches, the one for ensuring that the number of revokes is not exceeded, and the one for checking the glock is not already held in gfs2_getxattr are the two most important. The latter can be triggered by selinux. The other three patches are very small and fix mostly fairly trivial issues. -- The following changes since commit 47188d39b5deeebf41f87a02af1b3935866364cf: Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 (2013-07-14 21:47:51 -0700) are available in the git repository at: https://git.kernel.org/cgit/linux/kernel/git/steve/gfs2-3.0-fixes.git master Benjamin Marzinski (1): GFS2: don't overrun reserved revokes Dan Carpenter (1): GFS2: alloc_workqueue() doesn't return an ERR_PTR Steven Whitehouse (2): GFS2: Fix typo in gfs2_create_inode() GFS2: Check for glock already held in gfs2_getxattr Tejun Heo (1): GFS2: WQ_NON_REENTRANT is meaningless and going away fs/gfs2/glock.c |8 fs/gfs2/glops.c | 18 +- fs/gfs2/inode.c |6 +- fs/gfs2/main.c |2 +- 4 files changed, 23 insertions(+), 11 deletions(-)
[Cluster-devel] GFS2: Pull request (fixes)
Oops, forgot to sign this when I sent it first, so here is a signed copy of it. Hi, Please consider pulling the following changes, Steve. - Out of these five patches, the one for ensuring that the number of revokes is not exceeded, and the one for checking the glock is not already held in gfs2_getxattr are the two most important. The latter can be triggered by selinux. The other three patches are very small and fix mostly fairly trivial issues. -- The following changes since commit 47188d39b5deeebf41f87a02af1b3935866364cf: Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 (2013-07-14 21:47:51 -0700) are available in the git repository at: https://git.kernel.org/cgit/linux/kernel/git/steve/gfs2-3.0-fixes.git master Benjamin Marzinski (1): GFS2: don't overrun reserved revokes Dan Carpenter (1): GFS2: alloc_workqueue() doesn't return an ERR_PTR Steven Whitehouse (2): GFS2: Fix typo in gfs2_create_inode() GFS2: Check for glock already held in gfs2_getxattr Tejun Heo (1): GFS2: WQ_NON_REENTRANT is meaningless and going away fs/gfs2/glock.c |8 fs/gfs2/glops.c | 18 +- fs/gfs2/inode.c |6 +- fs/gfs2/main.c |2 +- 4 files changed, 23 insertions(+), 11 deletions(-) signature.asc Description: This is a digitally signed message part
Re: [Cluster-devel] GFS2: Pull request (fixes)
On Mon, Aug 19, 2013 at 2:26 AM, Steven Whitehouse swhit...@redhat.com wrote: Oops, forgot to sign this when I sent it first, so here is a signed copy of it. Please sign the git tag instead of the email. There are no sane tools to check email signatures etc, but git signed tags not only check your pgp key signature, they also allow you to just write the message into the tag. Also, please don't do crap like this: are available in the git repository at: https://git.kernel.org/cgit/linux/kernel/git/steve/gfs2-3.0-fixes.git master Yeah, no. The proper address is git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes not that cgit web page. Linus
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following fixes for GFS2, Steve. -- There are four patches this time. The first fixes a problem where the wrong descriptor type was being written into the log for journaled data blocks. The second fixes a race relating to the deallocation of allocator data. The third provides a fallback if kmalloc is unable to satisfy a request to allocate a directory hash table. The fourth fixes the iopen glock caching so that inodes are deleted in a more timely manner after rmdir/unlink. - The following changes since commit aa4f608478acb7ed69dfcff4f3c404100b78ac49: Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k (2013-06-03 18:09:42 +0900) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git master Bob Peterson (4): GFS2: Set log descriptor type for jdata blocks GFS2: Increase i_writecount during gfs2_setattr_size GFS2: Fall back to vmalloc if kmalloc fails for dir hash tables GFS2: Don't cache iopen glocks fs/gfs2/bmap.c | 17 + fs/gfs2/dir.c | 43 +-- fs/gfs2/file.c | 19 +-- fs/gfs2/inode.c |1 + fs/gfs2/lops.c |4 +++- fs/gfs2/rgrp.c |4 +++- fs/gfs2/super.c |6 +- 7 files changed, 71 insertions(+), 23 deletions(-) signature.asc Description: This is a digitally signed message part
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following fixes, Steve. This time there are just four fixes. There are a couple of minor updates to the quota code, a fix for KConfig to ensure that only valid combinations including GFS2 can be built, and a fix for a typo affecting end i/o processing when writing the journal. Also, there is a temporary fix for a performance regression relating to block reservations and directories. A longer fix will be applied in due course, but this deals with the most immediate problem for now. The following changes since commit c7788792a5e7b0d5d7f96d0766b4cb6112d47d75: Linux 3.10-rc2 (2013-05-20 14:37:38 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git master Bob Peterson (2): GFS2: two minor quota fixups GFS2: Use single-block reservations for directories Randy Dunlap (1): GFS2: fix DLM depends to fix build errors Steven Whitehouse (1): GFS2: Fix typo in gfs2_log_end_write loop fs/gfs2/Kconfig |2 +- fs/gfs2/lops.c |2 +- fs/gfs2/quota.c |4 ++-- fs/gfs2/rgrp.c |9 +++-- 4 files changed, 11 insertions(+), 6 deletions(-) signature.asc Description: This is a digitally signed message part
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following changes, Steve. There are two patches which fix up a couple of minor issues in the DLM interface code, a missing error path in gfs2_rs_alloc(), two patches which fix problems during withdraw and a fix for discards/FITRIM when using 4k sector sized devices. The following changes since commit 66ade474237745a57b7e87da9a93c7ec69fd52bb: Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm (2013-04-03 16:15:17 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git master Akinobu Mita (1): GFS2: use memchr_inv Bob Peterson (1): GFS2: Issue discards in 512b sectors David Teigland (2): GFS2: use kmalloc for lvb bitmap GFS2: Fix unlock of fcntl locks during withdrawn state Steven Whitehouse (1): GFS2: Fix unlock of fcntl locks during withdrawn state Wei Yongjun (1): GFS2: return error if malloc failed in gfs2_rs_alloc() fs/dlm/plock.c | 18 +++--- fs/gfs2/file.c |5 - fs/gfs2/incore.h |1 + fs/gfs2/lock_dlm.c | 39 --- fs/gfs2/rgrp.c | 32 ++-- 5 files changed, 54 insertions(+), 41 deletions(-)
Re: [Cluster-devel] GFS2: Pull request (fixes)
On Fri, Apr 05, 2013 at 11:34:45AM +0100, Steven Whitehouse wrote: Please consider pulling the following changes, There's some mixup here that should be cleared up first. David Teigland (2): GFS2: Fix unlock of fcntl locks during withdrawn state Steven Whitehouse (1): GFS2: Fix unlock of fcntl locks during withdrawn state
Re: [Cluster-devel] GFS2: Pull request (fixes)
Hi, On Fri, 2013-04-05 at 12:27 -0400, David Teigland wrote: On Fri, Apr 05, 2013 at 11:34:45AM +0100, Steven Whitehouse wrote: Please consider pulling the following changes, There's some mixup here that should be cleared up first. David Teigland (2): GFS2: Fix unlock of fcntl locks during withdrawn state Steven Whitehouse (1): GFS2: Fix unlock of fcntl locks during withdrawn state Yes, sorry about that. I'll fix that up and resend the pull request in due course, Steve.
Re: [Cluster-devel] GFS2: Pull request (fixes)
Hi, I've dropped out the patch which shouldn't have made it into the previous pull request, so this set should be ok now. Apologies for not spotting that issue sooner, Steve. - There are two patches which fix up a couple of minor issues in the DLM interface code, a missing error path in gfs2_rs_alloc(), one patch which fixes a problem during withdraw and a fix for discards/FITRIM when using 4k sector sized devices. - The following changes since commit 66ade474237745a57b7e87da9a93c7ec69fd52bb: Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm (2013-04-03 16:15:17 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git master Akinobu Mita (1): GFS2: use memchr_inv Bob Peterson (1): GFS2: Issue discards in 512b sectors David Teigland (1): GFS2: use kmalloc for lvb bitmap Steven Whitehouse (1): GFS2: Fix unlock of fcntl locks during withdrawn state Wei Yongjun (1): GFS2: return error if malloc failed in gfs2_rs_alloc() fs/gfs2/file.c |5 - fs/gfs2/incore.h |1 + fs/gfs2/lock_dlm.c | 39 --- fs/gfs2/rgrp.c | 32 ++-- 4 files changed, 39 insertions(+), 38 deletions(-) signature.asc Description: This is a digitally signed message part
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following GFS2 fixes, Steve. --- Here are a number of GFS2 bug fixes. There are three from Andy Price which fix various issues spotted by automated code analysis. There are two from Lukas Czerner fixing my mistaken assumptions as to how FITRIM should work. Finally Ben Marzinski has fixed a bug relating to mmap and atime and also a bug relating to a locking issue in the transaction code. The following changes since commit ddffeb8c4d0331609ef2581d84de4d763607bd37: Linux 3.7-rc1 (2012-10-14 14:41:04 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git master Andrew Price (3): GFS2: Fix an unchecked error from gfs2_rs_alloc GFS2: Fix possible null pointer deref in gfs2_rs_alloc GFS2: Clean up some unused assignments Benjamin Marzinski (2): GFS2: Don't call file_accessed() with a shared glock GFS2: Test bufdata with buffer locked and gfs2_log_lock held Lukas Czerner (2): GFS2: Require user to provide argument for FITRIM GFS2: Fix FITRIM argument handling fs/gfs2/file.c | 14 +- fs/gfs2/lops.c | 16 ++-- fs/gfs2/quota.c |7 +-- fs/gfs2/rgrp.c | 33 + fs/gfs2/super.c |3 ++- fs/gfs2/trans.c |8 6 files changed, 43 insertions(+), 38 deletions(-) signature.asc Description: This is a digitally signed message part
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following GFS2 fixes Steve. -- Here are three GFS2 fixes for the current kernel tree. These are all related to the block reservation code which was added at the merge window. That code will be getting an update at the forthcoming merge window too. In the mean time though there are a few smaller issues which should be fixed. The first patch resolves an issue with write sizes of greater than 32 bits with the size hinting code. The second ensures that the allocation data structure is initialised when using xattrs and the third takes into account allocations which may have been made by other nodes which affect a reservation on the local node. The following changes since commit 0d7614f09c1ebdbaa1599a5aba7593f147bf96ee: Linux 3.6-rc1 (2012-08-02 16:38:10 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git master Steven Whitehouse (3): GFS2: Make write size hinting code common GFS2: Fix missing allocation data for set/remove xattr GFS2: Take account of blockages when using reserved blocks fs/gfs2/file.c | 31 ++--- fs/gfs2/inode.c |8 +- fs/gfs2/rgrp.c | 66 +++--- 3 files changed, 61 insertions(+), 44 deletions(-) signature.asc Description: This is a digitally signed message part
[Cluster-devel] GFS2: Pull request (fixes)
[Apologies - I don't think the first message got signed as it should have. Here is a second attempt...] Hi, Please consider pulling the following patches, Steve. -- The following changes since commit dd775ae2549217d3ae09363e3edb305d0fa19928: Linux 3.4-rc1 (2012-03-31 16:24:09 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git master Benjamin Poirier (1): GFS2: use depends instead of select in kconfig Bob Peterson (3): GFS2: put glock reference in error patch of read_rindex_entry GFS2: Make sure rindex is uptodate before starting transactions GFS2: Allow caching of rindex glock fs/gfs2/Kconfig |7 ++- fs/gfs2/aops.c |4 ++-- fs/gfs2/bmap.c |6 +- fs/gfs2/dir.c |4 fs/gfs2/inode.c | 13 +++-- fs/gfs2/rgrp.c |8 +--- fs/gfs2/xattr.c | 12 7 files changed, 41 insertions(+), 13 deletions(-) signature.asc Description: This is a digitally signed message part
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following bug fixes, Steve. The following changes since commit 586c6e7013c8cbb8c91aaa6568ec349b1dc2c691: Merge tag 'ktest-fix-make-min-failed-build-for-real' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest (2012-02-27 15:43:05 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git master Bob Peterson (2): GFS2: Read in rindex if necessary during unlink GFS2: Ensure rindex is uptodate for fallocate Steven Whitehouse (2): GFS2: Fix race between lru_list and glock ref count GFS2: Read resource groups on mount fs/gfs2/glock.c | 14 ++ fs/gfs2/inode.c |5 + fs/gfs2/ops_fstype.c |5 + fs/gfs2/rgrp.c | 13 + 4 files changed, 25 insertions(+), 12 deletions(-) signature.asc Description: This is a digitally signed message part
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following patch. Since it is only one small patch I attached it below rather than posting it separately as usual, Steve. The following changes since commit e08dc1325feaf49eec392ee52feb2974ec3f5155: p9: avoid unused variable warning (2011-07-25 23:43:53 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Steven Whitehouse (1): GFS2: Fix mount hang caused by certain access pattern to sysfs files fs/gfs2/ops_fstype.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) -- From 19237039919088781b4191a00bdc1284d8fea1dd Mon Sep 17 00:00:00 2001 From: Steven Whitehouse swhit...@redhat.com Date: Tue, 26 Jul 2011 09:15:45 +0100 Subject: [PATCH] GFS2: Fix mount hang caused by certain access pattern to sysfs files Depending upon the order of userspace/kernel during the mount process, this can result in a hang without the _all version of the completion. Signed-off-by: Steven Whitehouse swhit...@redhat.com diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index 516516e..3bc073a 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c @@ -1018,13 +1018,13 @@ hostdata_error: fsname++; if (lm-lm_mount == NULL) { fs_info(sdp, Now mounting FS...\n); - complete(sdp-sd_locking_init); + complete_all(sdp-sd_locking_init); return 0; } ret = lm-lm_mount(sdp, fsname); if (ret == 0) fs_info(sdp, Joined cluster. Now mounting FS...\n); - complete(sdp-sd_locking_init); + complete_all(sdp-sd_locking_init); return ret; } -- 1.7.4
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following three fixes, Steve. The following changes since commit 620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc: Linux 3.0-rc7 (2011-07-11 16:51:52 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Benjamin Marzinski (1): GFS2: force a log flush when invalidating the rindex glock Steven Whitehouse (2): GFS2: Fix race during filesystem mount GFS2: Resolve inode eviction and ail list interaction bug fs/gfs2/aops.c |3 +++ fs/gfs2/glops.c |8 +--- fs/gfs2/incore.h |2 ++ fs/gfs2/log.c|1 + fs/gfs2/ops_fstype.c |3 +++ fs/gfs2/super.c | 36 ++-- fs/gfs2/sys.c|7 ++- 7 files changed, 50 insertions(+), 10 deletions(-)
[Cluster-devel] GFS2: Pull request (fixes)
Hi, These two changes just missed out on the last pull request. Please consider pulling the following two fixes, Steve. - The following changes since commit c21fd1a8c68ce3f49b00caf10337169262cfb8ad: Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 (2011-05-21 00:13:03 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Steven Whitehouse (2): GFS2: Wipe directory hash table metadata when deallocating a directory GFS2: Wait properly when flushing the ail list fs/gfs2/bmap.c |2 ++ fs/gfs2/log.c | 29 ++--- fs/gfs2/rgrp.c |4 3 files changed, 32 insertions(+), 3 deletions(-)
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following GFS2 bug fixes, Steve. -- The following changes since commit e6f597a1425b5af64917be3448b29e2d5a585ac8: staging: fix build failure in bcm driver (2011-01-17 17:39:39 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Benjamin Marzinski (1): GFS2: remove iopen glocks from cache on failed deletes Steven Whitehouse (1): GFS2: Fix error path in gfs2_lookup_by_inum() fs/gfs2/inode.c | 72 -- fs/gfs2/inode.h |1 - fs/gfs2/super.c |1 + 3 files changed, 23 insertions(+), 51 deletions(-) - From 23c3010808de86f21436eb822aacfa551bfc17e4 Mon Sep 17 00:00:00 2001 From: Benjamin Marzinski bmarz...@redhat.com Date: Fri, 14 Jan 2011 22:39:16 -0600 Subject: [PATCH 1/2] GFS2: remove iopen glocks from cache on failed deletes When a file gets deleted on GFS2, if a node can't get an exclusive lock on the file's iopen glock, it punts on actually freeing up the space, because another node is using the file. When it does this, it needs to drop the iopen glock from its cache so that the other node can get an exclusive lock on it. Now, gfs2_delete_inode() sets GL_NOCACHE before dropping the shared lock on the iopen glock in preparation for grabbing it in the exclusive state. Since the node needs the glock in the exclusive state, dropping the shared lock from the cache doesn't slow down the case where no other nodes are using the file. Signed-off-by: Benjamin Marzinski bmarz...@redhat.com Signed-off-by: Steven Whitehouse swhit...@redhat.com diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 16c2eca..ec73ed7 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c @@ -1336,6 +1336,7 @@ static void gfs2_evict_inode(struct inode *inode) if (error) goto out_truncate; + ip-i_iopen_gh.gh_flags |= GL_NOCACHE; gfs2_glock_dq_wait(ip-i_iopen_gh); gfs2_holder_reinit(LM_ST_EXCLUSIVE, LM_FLAG_TRY_1CB | GL_NOCACHE, ip-i_iopen_gh); error = gfs2_glock_nq(ip-i_iopen_gh); -- 1.7.3.3 -- From 24d9765fc18c7838ccdbb0d71fb706321d9b824c Mon Sep 17 00:00:00 2001 From: Steven Whitehouse swhit...@redhat.com Date: Tue, 18 Jan 2011 14:49:08 + Subject: [PATCH 2/2] GFS2: Fix error path in gfs2_lookup_by_inum() In the (impossible, except if there is fs corruption) error path in gfs2_lookup_by_inum() if the call to gfs2_inode_refresh() fails, it was leaving the function by calling iput() rather than iget_failed(). This would cause future lookups of the same inode to block forever. This patch fixes the problem by moving the call to gfs2_inode_refresh() into gfs2_inode_lookup() where iget_failed() is part of the error path already. Also this cleans up some unreachable code and makes gfs2_set_iop() static. Signed-off-by: Steven Whitehouse swhit...@redhat.com diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index 2232b3c..7aa7d4f 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c @@ -74,16 +74,14 @@ static struct inode *gfs2_iget(struct super_block *sb, u64 no_addr) } /** - * GFS2 lookup code fills in vfs inode contents based on info obtained - * from directory entry inside gfs2_inode_lookup(). This has caused issues - * with NFS code path since its get_dentry routine doesn't have the relevant - * directory entry when gfs2_inode_lookup() is invoked. Part of the code - * segment inside gfs2_inode_lookup code needs to get moved around. + * gfs2_set_iop - Sets inode operations + * @inode: The inode with correct i_mode filled in * - * Clears I_NEW as well. - **/ + * GFS2 lookup code fills in vfs inode contents based on info obtained + * from directory entry inside gfs2_inode_lookup(). + */ -void gfs2_set_iop(struct inode *inode) +static void gfs2_set_iop(struct inode *inode) { struct gfs2_sbd *sdp = GFS2_SB(inode); umode_t mode = inode-i_mode; @@ -106,8 +104,6 @@ void gfs2_set_iop(struct inode *inode) inode-i_op = gfs2_file_iops; init_special_inode(inode, inode-i_mode, inode-i_rdev); } - - unlock_new_inode(inode); } /** @@ -119,10 +115,8 @@ void gfs2_set_iop(struct inode *inode) * Returns: A VFS inode, or an error */ -struct inode *gfs2_inode_lookup(struct super_block *sb, - unsigned int type, - u64 no_addr, - u64 no_formal_ino) +struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned int type, + u64 no_addr, u64 no_formal_ino) { struct inode *inode; struct gfs2_inode *ip; @@ -152,51 +146,37 @@ struct inode *gfs2_inode_lookup(struct super_block *sb,
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following fix, Steve. - The following changes since commit e53beacd23d9cb47590da6a7a7f6d417b941a994: Linux 2.6.37-rc2 (2010-11-15 18:31:02 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Abhijith Das (1): GFS2: Userland expects quota limit/warn/usage in 512b blocks fs/gfs2/quota.c | 15 --- 1 files changed, 8 insertions(+), 7 deletions(-) -- From 14870b457524e745f1a118e17873d104b1a47b70 Mon Sep 17 00:00:00 2001 From: Abhijith Das a...@redhat.com Date: Thu, 18 Nov 2010 11:24:24 -0500 Subject: [PATCH] GFS2: Userland expects quota limit/warn/usage in 512b blocks Userland programs using the quotactl() syscall assume limit/warn/usage block counts in 512b basic blocks which were instead being read/written in fs blocksize in gfs2. With this patch, gfs2 correctly interacts with the syscall using 512b blocks. Signed-off-by: Abhi Das a...@redhat.com Reviewed-by: Christoph Hellwig h...@lst.de Signed-off-by: Steven Whitehouse swhit...@redhat.com diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c index 58a9b99..f606baf 100644 --- a/fs/gfs2/quota.c +++ b/fs/gfs2/quota.c @@ -631,6 +631,7 @@ static int gfs2_adjust_quota(struct gfs2_inode *ip, loff_t loc, struct fs_disk_quota *fdq) { struct inode *inode = ip-i_inode; + struct gfs2_sbd *sdp = GFS2_SB(inode); struct address_space *mapping = inode-i_mapping; unsigned long index = loc PAGE_CACHE_SHIFT; unsigned offset = loc (PAGE_CACHE_SIZE - 1); @@ -658,11 +659,11 @@ static int gfs2_adjust_quota(struct gfs2_inode *ip, loff_t loc, qd-qd_qb.qb_value = qp-qu_value; if (fdq) { if (fdq-d_fieldmask FS_DQ_BSOFT) { - qp-qu_warn = cpu_to_be64(fdq-d_blk_softlimit); + qp-qu_warn = cpu_to_be64(fdq-d_blk_softlimit sdp-sd_fsb2bb_shift); qd-qd_qb.qb_warn = qp-qu_warn; } if (fdq-d_fieldmask FS_DQ_BHARD) { - qp-qu_limit = cpu_to_be64(fdq-d_blk_hardlimit); + qp-qu_limit = cpu_to_be64(fdq-d_blk_hardlimit sdp-sd_fsb2bb_shift); qd-qd_qb.qb_limit = qp-qu_limit; } } @@ -1497,9 +1498,9 @@ static int gfs2_get_dqblk(struct super_block *sb, int type, qid_t id, fdq-d_version = FS_DQUOT_VERSION; fdq-d_flags = (type == QUOTA_USER) ? FS_USER_QUOTA : FS_GROUP_QUOTA; fdq-d_id = id; - fdq-d_blk_hardlimit = be64_to_cpu(qlvb-qb_limit); - fdq-d_blk_softlimit = be64_to_cpu(qlvb-qb_warn); - fdq-d_bcount = be64_to_cpu(qlvb-qb_value); + fdq-d_blk_hardlimit = be64_to_cpu(qlvb-qb_limit) sdp-sd_fsb2bb_shift; + fdq-d_blk_softlimit = be64_to_cpu(qlvb-qb_warn) sdp-sd_fsb2bb_shift; + fdq-d_bcount = be64_to_cpu(qlvb-qb_value) sdp-sd_fsb2bb_shift; gfs2_glock_dq_uninit(q_gh); out: @@ -1566,10 +1567,10 @@ static int gfs2_set_dqblk(struct super_block *sb, int type, qid_t id, /* If nothing has changed, this is a no-op */ if ((fdq-d_fieldmask FS_DQ_BSOFT) - (fdq-d_blk_softlimit == be64_to_cpu(qd-qd_qb.qb_warn))) + ((fdq-d_blk_softlimit sdp-sd_fsb2bb_shift) == be64_to_cpu(qd-qd_qb.qb_warn))) fdq-d_fieldmask ^= FS_DQ_BSOFT; if ((fdq-d_fieldmask FS_DQ_BHARD) - (fdq-d_blk_hardlimit == be64_to_cpu(qd-qd_qb.qb_limit))) + ((fdq-d_blk_hardlimit sdp-sd_fsb2bb_shift) == be64_to_cpu(qd-qd_qb.qb_limit))) fdq-d_fieldmask ^= FS_DQ_BHARD; if (fdq-d_fieldmask == 0) goto out_i; -- 1.7.2.3
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following (very small!) patch, Steve. -- The following changes since commit 03a7ab083e4d619136d6f07ce70fa9de0bc436fc: Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 (2010-09-16 12:59:11 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Steven Whitehouse (1): GFS2: gfs2_logd should be using interruptible waits fs/gfs2/log.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c index cde1248..ac750bd 100644 --- a/fs/gfs2/log.c +++ b/fs/gfs2/log.c @@ -932,7 +932,7 @@ int gfs2_logd(void *data) do { prepare_to_wait(sdp-sd_logd_waitq, wait, - TASK_UNINTERRUPTIBLE); + TASK_INTERRUPTIBLE); if (!gfs2_ail_flush_reqd(sdp) !gfs2_jrnl_flush_reqd(sdp) !kthread_should_stop())
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following GFS2 fixes, Steve. The following changes since commit 2f7989efd4398d92b8adffce2e07dd043a0895fe: Merge master.kernel.org:/home/rmk/linux-2.6-arm (2010-07-14 17:28:13 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Abhijith Das (1): GFS2: BUG in gfs2_adjust_quota Bob Peterson (4): GFS2: O_TRUNC not working on stuffed files across cluster GFS2: recovery stuck on transaction lock GFS2: Fix kernel NULL pointer dereference by dlm_astd GFS2: rename causes kernel Oops fs/gfs2/bmap.c |1 + fs/gfs2/dir.c |2 +- fs/gfs2/glock.c | 10 ++ fs/gfs2/inode.c | 12 fs/gfs2/quota.c |8 +++- 5 files changed, 23 insertions(+), 10 deletions(-)
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following three GFS2 fixes, Steve. --- The following changes since commit d7dbf4ffee1c7a17e2e5b5f01efe76fbd1671db6: Linus Torvalds (1): Merge branch 'for-linus' of git://git.kernel.org/.../ryusuke/nilfs2 are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Bob Peterson (1): GFS2: Rework reclaiming unlinked dinodes Steven Whitehouse (2): GFS2: Don't get xattrs for ACLs when ACLs are turned off GFS2: Fix permissions checking for setflags ioctl() fs/gfs2/acl.c |4 fs/gfs2/file.c |7 +++ fs/gfs2/inode.c | 54 +- fs/gfs2/inode.h |3 +-- fs/gfs2/log.c |2 +- fs/gfs2/log.h | 29 +++-- fs/gfs2/rgrp.c | 20 7 files changed, 65 insertions(+), 54 deletions(-)
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following small fixes, Steve. -- The following changes since commit 57d54889cd00db2752994b389ba714138652e60c: Linus Torvalds (1): Linux 2.6.34-rc1 are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Benjamin Marzinski (1): GFS2: Allow the number of committed revokes to temporarily be negative Christoph Hellwig (1): GFS2: do not select QUOTA Sachin Prabhu (1): GFS2: Skip check for mandatory locks when unlocking fs/gfs2/Kconfig |1 - fs/gfs2/file.c |2 +- fs/gfs2/incore.h |2 +- fs/gfs2/log.c|3 +-- 4 files changed, 3 insertions(+), 5 deletions(-)
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following changes, Steve. - The following changes since commit 676ad585531e965416fd958747894541dabcec96: Linus Torvalds (1): Merge branch 'for-linus' of git://git.kernel.org/.../bp/bp are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Abhijith Das (1): GFS2: Fix error code Steven Whitehouse (1): GFS2: Fix bmap allocation corner-case bug fs/gfs2/bmap.c |2 +- fs/gfs2/ops_fstype.c |2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following two changes, Steve. The following changes since commit 1a45dcfe2525e9432cb4aba461d4994fc2befe42: Linus Torvalds (1): Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Steven Whitehouse (2): GFS2: Wait for unlock completion on umount GFS2: Extend umount wait coverage to full glock lifetime fs/gfs2/glock.c |4 fs/gfs2/glock.h |2 +- fs/gfs2/incore.h |2 ++ fs/gfs2/lock_dlm.c | 11 --- fs/gfs2/ops_fstype.c | 12 +++- fs/gfs2/super.c |1 + 6 files changed, 27 insertions(+), 5 deletions(-)
[Cluster-devel] [GFS2] Pull request (fixes)
Hi, Please consider pulling the following patches, Steve. The following changes since commit 066000dd856709b6980123eb39b957fe26993f7b: Ananth N Mavinakayanahalli (1): Revert x86, apic: Use logical flat on intel with = 8 logical cpus are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Benjamin Marzinski (1): GFS2: Don't withdraw on partial rindex entries OGAWA Hirofumi (1): GFS2: Fix refcnt leak on gfs2_follow_link() error path Steven Whitehouse (2): GFS2: Fix previous patch GFS2: Use GFP_NOFS for alloc structure fs/gfs2/ops_inode.c |3 ++- fs/gfs2/rgrp.c |8 ++-- 2 files changed, 4 insertions(+), 7 deletions(-)
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following GFS2 bug fixes, Steve. The following changes since commit 74d2e4f8d79ae0c4b6ec027958d5b18058662eea: Linus Torvalds (1): Linux 2.6.33-rc3 are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Steven Whitehouse (4): GFS2: Ensure uptodate inode size when using O_APPEND GFS2: Fix locking bug in rename GFS2: Fix gfs2_xattr_acl_chmod() GFS2: Use MAX_LFS_FILESIZE for meta inode size fs/gfs2/file.c | 38 -- fs/gfs2/meta_io.c |2 +- fs/gfs2/ops_inode.c |6 -- fs/gfs2/xattr.c | 21 +++-- 4 files changed, 52 insertions(+), 15 deletions(-)
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following fix, Steve. The following changes since commit 64f1607ffbbc772685733ea63e6f7f4183df1b16: Linus Torvalds (1): Linux 2.6.31-rc6 are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Steven Whitehouse (1): GFS2: Fix permissions on recover file fs/gfs2/sys.c | 20 ++-- 1 files changed, 10 insertions(+), 10 deletions(-) --- From d7e623da1a757fbd8c117fa29190ca8bef14dab3 Mon Sep 17 00:00:00 2001 From: Steven Whitehouse swhit...@redhat.com Date: Tue, 11 Aug 2009 11:20:11 +0100 Subject: [PATCH] GFS2: Fix permissions on recover file Although this file is only ever written and not read by userspace, it seems that the utils are opening this file O_RDWR, so we need to allow that. Also fixes the whitespace which seemed to be broken. Signed-off-by: Steven Whitehouse swhit...@redhat.com Cc: David Teigland teigl...@redhat.com --- fs/gfs2/sys.c | 20 ++-- 1 files changed, 10 insertions(+), 10 deletions(-) diff --git a/fs/gfs2/sys.c b/fs/gfs2/sys.c index 23419dc..a7cbfbd 100644 --- a/fs/gfs2/sys.c +++ b/fs/gfs2/sys.c @@ -386,16 +386,16 @@ static ssize_t jid_show(struct gfs2_sbd *sdp, char *buf) #define GDLM_ATTR(_name,_mode,_show,_store) \ static struct gfs2_attr gdlm_attr_##_name = __ATTR(_name,_mode,_show,_store) -GDLM_ATTR(proto_name, 0444, proto_name_show, NULL); -GDLM_ATTR(block, 0644, block_show,block_store); -GDLM_ATTR(withdraw, 0644, withdraw_show, withdraw_store); -GDLM_ATTR(id, 0444, lkid_show, NULL); -GDLM_ATTR(jid, 0444, jid_show, NULL); -GDLM_ATTR(first, 0444, lkfirst_show, NULL); -GDLM_ATTR(first_done, 0444, first_done_show, NULL); -GDLM_ATTR(recover,0200, NULL, recover_store); -GDLM_ATTR(recover_done, 0444, recover_done_show, NULL); -GDLM_ATTR(recover_status, 0444, recover_status_show, NULL); +GDLM_ATTR(proto_name, 0444, proto_name_show, NULL); +GDLM_ATTR(block, 0644, block_show, block_store); +GDLM_ATTR(withdraw,0644, withdraw_show,withdraw_store); +GDLM_ATTR(id, 0444, lkid_show,NULL); +GDLM_ATTR(jid, 0444, jid_show, NULL); +GDLM_ATTR(first, 0444, lkfirst_show, NULL); +GDLM_ATTR(first_done, 0444, first_done_show, NULL); +GDLM_ATTR(recover, 0600, NULL, recover_store); +GDLM_ATTR(recover_done,0444, recover_done_show,NULL); +GDLM_ATTR(recover_status, 0444, recover_status_show, NULL); static struct attribute *lock_module_attrs[] = { gdlm_attr_proto_name.attr, -- 1.6.2.5
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following changes, Steve. The following changes since commit 4be3bd7849165e7efa6b0b35a23d6a3598d97465: Linus Torvalds (1): Linux 2.6.31-rc4 are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Benjamin Marzinski (5): GFS2: keep statfs info in sync on grows GFS2: Fix panic in glock memory shrinker GFS2: Don't put unlikely reclaim candidates on the reclaim list. GFS2: Fix incorrent statfs consistency check GFS2: remove dcache entries for remote deleted inodes Steven Whitehouse (2): GFS2: Shrink the shrinker GFS2: Don't try and dealloc own inode fs/gfs2/aops.c | 39 +++ fs/gfs2/glock.c | 138 +++-- fs/gfs2/glock.h |3 + fs/gfs2/glops.c | 21 fs/gfs2/incore.h |2 + fs/gfs2/rgrp.c | 23 -- fs/gfs2/super.c | 40 ++-- fs/gfs2/super.h |4 ++ 8 files changed, 195 insertions(+), 75 deletions(-)
[Cluster-devel] GFS2: Pull request (fixes)
Hi, Please consider pulling the following GFS2 fixes, Steve. The following changes since commit 091069740304c979f957ceacec39c461d0192158: Linus Torvalds (1): Linux 2.6.30-rc3 are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master Steven Whitehouse (3): bitops: Add __ffs64 bitop GFS2: Fix bug in block allocation GFS2: Ensure that the inode goal block settings are updated fs/gfs2/rgrp.c | 13 ++--- include/linux/bitops.h | 19 +++ 2 files changed, 29 insertions(+), 3 deletions(-)