Re: cross-merges with MFD tree (was: Re: GFS2: Pull Request)
On Tue, 28 May 2019, Jacek Anaszewski wrote: > Hi Linus, > > On 5/8/19 7:55 PM, Linus Torvalds wrote: > > On Wed, May 8, 2019 at 4:49 AM Andreas Gruenbacher > > wrote: > > > > > > There was a conflict with commit 2b070cfe582b ("block: remove the i > > > argument to bio_for_each_segment_all") on Jens's block layer changes > > > which you've already merged. I've resolved that by merging those block > > > layer changes; please let me know if you want this done differently. > > > > PLEASE. > > > > I say this to somebody pretty much every single merge window: don't do > > merges for me. > > > > You are actually just hurting, not helping. I want to know what the > > conflicts are, not by being told after-the-fact, but by just seeing > > them and resolving them. > > > > Yes, I like being _warned_ ahead of time - partly just as a heads up > > to me, but partly also to show that the maintainers are aware of the > > notifications from linux-next, and that linux-next is working as > > intended, and people aren't just ignoring what it reports. > > > > But I do *NOT* want to see maintainers cross-merging each others trees. > > I would like to clarify if this applies to immutable integration > branches that are usually created for MFD subsystem. That subsystem > is somehow specific since changes made to MFD drivers are often a part > of bigger patch sets that add drivers of MFD cells to the other > subsystems. > > Like in my area of interest an addition of a driver for LED cell > of MFD device must be followed by addition of a corresponding entry to > struct mfd_cell array in the related MFD driver. > > And sometimes even another subsystem is involved, like e.g. regulator > framework in case of recent extension of ti-lmu driver. > > So far you haven't complained about this specific workflow, but I'd like > to make sure how you see it. After you bought this conversation to my attention last week, I took the initiative and spoke to a few senior maintainers (Mark Brown, Linus Walleij, etc) for their views. I choose these guys because they are commonly on the receiving end of my Pull Requests when we need to do this. Due to its inherent nature, MFD usually finds itself interacting with other subsystems in ways which deal with both physical merge conflicts and build dependencies. For some time now the vast majority of the other maintainers I work with and I have believed, and still do, that the best way to mitigate these issues is to produce small, succinct, immutable topic branches. These branches only usually contain a few patches and serve to solve a specific potential issue - usually build-time problems, but also have the added bonus of preventing merge conflicts and keeping us out of the forefront of Linus' mind (and out of trouble!) We've been doing this for some time and have interacted with many subsystems (ACPI, ASoC, ARM-SoC, Clocksource, Excon, GPIO, Hwmon, I2C, IIO, Input, IRQChip, LED, PWM, Media, Net, Pinctrl, Platform, Power, Regulator, RTC, USB, Video, Watchdog, etc, etc) over the years [0]. In my mind, small, immutable topic branches is still the cleanest way to deal with the issues facing MFD currently. And is not what Linus is detailing in his recent mail(s) on the subject. We are not "doing merges on his behalf", we are ensuring; buildable, bisectable, error-free branches/history that will also merge cleanly. [0] `git log --oneline --grep ib-mfd mainline/master` -- Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog
cross-merges with MFD tree (was: Re: GFS2: Pull Request)
Hi Linus, On 5/8/19 7:55 PM, Linus Torvalds wrote: On Wed, May 8, 2019 at 4:49 AM Andreas Gruenbacher wrote: There was a conflict with commit 2b070cfe582b ("block: remove the i argument to bio_for_each_segment_all") on Jens's block layer changes which you've already merged. I've resolved that by merging those block layer changes; please let me know if you want this done differently. PLEASE. I say this to somebody pretty much every single merge window: don't do merges for me. You are actually just hurting, not helping. I want to know what the conflicts are, not by being told after-the-fact, but by just seeing them and resolving them. Yes, I like being _warned_ ahead of time - partly just as a heads up to me, but partly also to show that the maintainers are aware of the notifications from linux-next, and that linux-next is working as intended, and people aren't just ignoring what it reports. But I do *NOT* want to see maintainers cross-merging each others trees. I would like to clarify if this applies to immutable integration branches that are usually created for MFD subsystem. That subsystem is somehow specific since changes made to MFD drivers are often a part of bigger patch sets that add drivers of MFD cells to the other subsystems. Like in my area of interest an addition of a driver for LED cell of MFD device must be followed by addition of a corresponding entry to struct mfd_cell array in the related MFD driver. And sometimes even another subsystem is involved, like e.g. regulator framework in case of recent extension of ti-lmu driver. So far you haven't complained about this specific workflow, but I'd like to make sure how you see it. -- Best regards, Jacek Anaszewski
Re: GFS2: Pull Request
On Wed, 8 May 2019 22:17:12 +0200 Andreas Gruenbacher wrote: > Would it make sense to describe how to deal with merge conflicts in > Documentation/maintainer/pull-requests.rst to stop people from getting > this wrong over and over again? I think this certainly belongs in the maintainer manual, but probably not in pull-requests.rst. There are a lot of things about repository management that seem to trip up even experienced maintainers; pre-pull merges is just one of those. I would love to see a proper guide on when and how to do merges in general. CCing Dan, who has ambitions for the maintainer manual as well, just in case he has anything in mind here. Thanks, jon
Re: GFS2: Pull Request
Linus, On Wed, 8 May 2019 at 20:06, Linus Torvalds wrote: > On Wed, May 8, 2019 at 10:55 AM Linus Torvalds > wrote: > > > > See what I'm saying? You would ask me to pull the un-merged state, but > > then say "I noticed a few merge conflicts when I did my test merge, > > and this is what I did" kind of aside. > > Side note: this is more important if you know of a merge issue that > doesn't cause a conflict, and that I won't see in my simple build > tests. > > For example, in this case, the merge issue doesn't cause a conflict > (because it's a totally new user of bio_for_each_segment_all() and the > syntax changed in another branch), but I see it trivially when I do a > test build, since the compiler spews out lots of warnings, and so I > can trivially fix it up (and you _mentioning_ the issue gives me the > heads up that you knew about it and what it's all about). > > But if it's other architectures, or only happens under special config > options etc, I might not have seen the merge issue at all. And then > it's really good if the maintainer talks about it and shows that yes, > the maintainer knows what he's doing. > > Now I'm in the situation where I have actually done the merge the way > I *like* doing them, and without your superfluous merge commit. But if > I use my merge, I'll lose the signature from your tag, because you > signed *your* merge that I didn't actually want to use at all. > > See? Your "helpful" merge actually caused me extra work, and made me > have to pick one of two *worse* situations than if you had just tagged > your own development tree. Either my tree has a extra pointless merge > commit, or my tree lacks your signature on your work. Ok, got it. Would it make sense to describe how to deal with merge conflicts in Documentation/maintainer/pull-requests.rst to stop people from getting this wrong over and over again? Thanks, Andreas
Re: GFS2: Pull Request
On Wed, May 8, 2019 at 1:17 PM Andreas Gruenbacher wrote: > > Would it make sense to describe how to deal with merge conflicts in > Documentation/maintainer/pull-requests.rst to stop people from getting > this wrong over and over again? Probably. I do think it got written up at some point (lwn or something like that), but it's possible it never got made into an actual documentation file.. Anybody want to try to massage that email into the appropriate doc file? Linus
GFS2: Pull Request (2nd attempt)
Hi Linus, please consider pulling the following changes for the GFS2 file system, now without resolving the merge conflict Stephen Rothwell has pointed out between commit 2b070cfe582b ("block: remove the i argument to bio_for_each_segment_all") which is already merged, interacting with commit e21e191994af ("gfs2: read journal in large chunks") which is part of this pull request. Stephen's suggested resolution of the conflict can be found at https://lore.kernel.org/lkml/20190506150707.618f0...@canb.auug.org.au/. Thanks, Andreas The following changes since commit b4b52b881cf08e13d110eac811d4becc0775abbf: Merge tag 'Wimplicit-fallthrough-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux (2019-05-07 12:48:10 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-for-5.2 for you to fetch changes up to f4686c26ecc34e8e458b8235f0af5198c9b13bfd: gfs2: read journal in large chunks (2019-05-07 23:39:15 +0200) We've got the following patches ready for this merge window: "gfs2: Fix loop in gfs2_rbm_find (v2)" A rework of a fix we ended up reverting in 5.0 because of an iozone performance regression. "gfs2: read journal in large chunks" and "gfs2: fix race between gfs2_freeze_func and unmount" An improved version of a commit we also ended up reverting in 5.0 because of a regression in xfstest generic/311. It turns out that the journal changes were mostly innocent and that unfreeze didn't wait for the freeze to complete, which caused the filesystem to be unmounted before it was actually idle. "gfs2: Fix occasional glock use-after-free" "gfs2: Fix iomap write page reclaim deadlock" "gfs2: Fix lru_count going negative" Fixes for various problems reported and partially fixed by Citrix engineers. Thank you very much. "gfs2: clean_journal improperly set sd_log_flush_head" Another fix from Bob. A few other minor cleanups. Abhi Das (2): gfs2: fix race between gfs2_freeze_func and unmount gfs2: read journal in large chunks Andreas Gruenbacher (7): gfs2: Fix loop in gfs2_rbm_find (v2) gfs2: Fix occasional glock use-after-free gfs2: Remove misleading comments in gfs2_evict_inode gfs2: Remove unnecessary extern declarations gfs2: Rename sd_log_le_{revoke,ordered} gfs2: Rename gfs2_trans_{add_unrevoke => remove_revoke} gfs2: Fix iomap write page reclaim deadlock Bob Peterson (2): gfs2: clean_journal improperly set sd_log_flush_head gfs2: Replace gl_revokes with a GLF flag Ross Lagerwall (1): gfs2: Fix lru_count going negative fs/gfs2/aops.c | 14 ++- fs/gfs2/bmap.c | 118 ++- fs/gfs2/bmap.h | 1 + fs/gfs2/dir.c| 2 +- fs/gfs2/glock.c | 25 +++-- fs/gfs2/glops.c | 3 +- fs/gfs2/incore.h | 9 +- fs/gfs2/log.c| 47 ++ fs/gfs2/log.h| 5 +- fs/gfs2/lops.c | 261 ++- fs/gfs2/lops.h | 11 +-- fs/gfs2/main.c | 1 - fs/gfs2/ops_fstype.c | 7 +- fs/gfs2/recovery.c | 135 ++ fs/gfs2/recovery.h | 4 +- fs/gfs2/rgrp.c | 56 +-- fs/gfs2/super.c | 20 ++-- fs/gfs2/trans.c | 4 +- fs/gfs2/trans.h | 2 +- fs/gfs2/xattr.c | 6 +- 20 files changed, 438 insertions(+), 293 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 49a57857aeea06ca831043acbb0fa5e0f50602fd: Linux 5.0-rc3 (2019-01-21 13:14:44 +1300) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-5.1.fixes for you to fetch changes up to 605b0487f0bc1ae9963bf52ece0f5c8055186f81: gfs2: Fix missed wakeups in find_insert_glock (2019-03-08 15:49:01 +0100) We've only got three patches ready for this merge window: - Fix a hang related to missed wakeups for glocks from Andreas Gruenbacher. - Rework of how gfs2 manages its debugfs files from Greg K-H. - An incorrect assert when truncating or deleting files from Tim Smith. Andreas Gruenbacher (1): gfs2: Fix missed wakeups in find_insert_glock Greg Kroah-Hartman (1): gfs: no need to check return value of debugfs_create functions Tim Smith (1): gfs2: Fix an incorrect gfs2_assert() fs/gfs2/glock.c | 72 fs/gfs2/glock.h | 4 ++-- fs/gfs2/incore.h | 3 --- fs/gfs2/inode.h | 4 ++-- fs/gfs2/main.c | 6 + 5 files changed, 20 insertions(+), 69 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 40e020c129cfc991e8ab4736d2665351ffd1468d: Linux 4.20-rc6 (2018-12-09 15:31:00 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.21.fixes for you to fetch changes up to bc0205612bbd4dd4026d4ba6287f5643c37366ec: gfs2: take jdata unstuff into account in do_grow (2018-12-18 10:49:02 -0600) We've got 11 patches for this merge window: - Enhancements and performance improvements to journal replay (Abhi Das) - Cleanup of gfs2_is_ordered and gfs2_is_writeback (Andreas Gruenbacher) - Fix a potential double-free in inode creation (Andreas Gruenbacher) - Fix the bitmap search loop that was searching too far (Andreas Gruenbacher) - Various cleanups (Andreas Gruenbacher, Bob Peterson) - Implement Steve Whitehouse's patch to dump nrpages for inodes (Bob Peterson) - Fix a withdraw bug where stuffed journaled data files didn't allocate enough journal space to be grown (Bob Peterson) Abhi Das (4): gfs2: add more timing info to journal recovery process gfs2: changes to gfs2_log_XXX_bio gfs2: add a helper function to get_log_header that can be used elsewhere gfs2: read journal in large chunks to locate the head Andreas Gruenbacher (4): gfs2: Clean up gfs2_is_{ordered,writeback} gfs2: Fix the gfs2_invalidatepage description gfs2: Get rid of potential double-freeing in gfs2_create_inode gfs2: Fix loop in gfs2_rbm_find Bob Peterson (3): gfs2: Remove vestigial bd_ops gfs2: Dump nrpages for inodes and their glocks gfs2: take jdata unstuff into account in do_grow fs/gfs2/aops.c | 16 ++-- fs/gfs2/bmap.c | 10 +- fs/gfs2/glock.c | 2 +- fs/gfs2/glock.h | 2 +- fs/gfs2/glops.c | 17 +++- fs/gfs2/incore.h | 3 +- fs/gfs2/inode.c | 18 ++-- fs/gfs2/inode.h | 10 +- fs/gfs2/log.c| 5 +- fs/gfs2/log.h| 5 +- fs/gfs2/lops.c | 257 +++ fs/gfs2/lops.h | 4 +- fs/gfs2/ops_fstype.c | 1 + fs/gfs2/recovery.c | 178 +++ fs/gfs2/recovery.h | 5 +- fs/gfs2/rgrp.c | 4 +- fs/gfs2/rgrp.h | 2 +- fs/gfs2/super.c | 1 + fs/gfs2/trans.c | 8 +- 19 files changed, 317 insertions(+), 231 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Welcome back. Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 050cdc6c9501abcd64720b8cc3e7941efee9547d: Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2018-08-27 11:59:39 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.20.fixes for you to fetch changes up to 8e31582a9ab18093c0b7708b52d7f79eed9a8688: gfs2: Fix minor typo: couln't versus couldn't. (2018-10-19 11:34:04 -0500) We've got 18 patches for this merge window, none of which are very major. 1. Andreas Gruenbacher contributed several patches to clean up the gfs2 block allocator to prepare for future performance enhancements. 2. Andy Price contributed a patch to fix a use-after-free problem. 3. I contributed some patches that fix gfs2's broken rgrplvb mount option. 4. I contributed some cleanup patches and error message improvements. 5. Steve Whitehouse and Abhi Das sent a patch to enable getlabel support. 6. Tim Smith contributed a patch to flush the glock delete workqueue at exit. Andreas Gruenbacher (8): gfs2: Always check the result of gfs2_rbm_from_block gfs2: Clean up out-of-bounds check in gfs2_rbm_from_block gfs2: Move rs_{sizehint, rgd_gh} fields into the inode gfs2: Remove unused RGRP_RSRV_MINBYTES definition gfs2: Rename bitmap.bi_{len => bytes} gfs2: Fix some minor typos gfs2: Fix marking bitmaps non-full gfs2: Pass resource group to rgblk_free Andrew Price (1): gfs2: Don't leave s_fs_info pointing to freed memory in init_sbd Bob Peterson (7): gfs2: improve debug information when lvb mismatches are found gfs2: Don't set GFS2_RDF_UPTODATE when the lvb is updated gfs2: slow the deluge of io error messages gfs2: Use fs_* functions instead of pr_* function where we can gfs2: Remove unnecessary gfs2_rlist_alloc parameter gfs2: write revokes should traverse sd_ail1_list in reverse gfs2: Fix minor typo: couln't versus couldn't. Steve Whitehouse (1): gfs2: getlabel support Tim Smith (1): GFS2: Flush the GFS2 delete workqueue before stopping the kernel threads fs/gfs2/bmap.c | 4 +- fs/gfs2/dir.c| 28 --- fs/gfs2/file.c | 18 - fs/gfs2/glock.c | 17 +++-- fs/gfs2/incore.h | 9 +-- fs/gfs2/lock_dlm.c | 10 +-- fs/gfs2/log.c| 11 ++- fs/gfs2/lops.c | 2 +- fs/gfs2/main.c | 2 + fs/gfs2/ops_fstype.c | 2 +- fs/gfs2/quota.c | 2 +- fs/gfs2/rgrp.c | 201 +-- fs/gfs2/rgrp.h | 11 +-- fs/gfs2/super.c | 4 +- fs/gfs2/trans.c | 15 ++-- fs/gfs2/util.c | 16 ++-- fs/gfs2/util.h | 2 +- fs/gfs2/xattr.c | 18 +++-- 18 files changed, 218 insertions(+), 154 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Welcome back. Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 050cdc6c9501abcd64720b8cc3e7941efee9547d: Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2018-08-27 11:59:39 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.20.fixes for you to fetch changes up to 8e31582a9ab18093c0b7708b52d7f79eed9a8688: gfs2: Fix minor typo: couln't versus couldn't. (2018-10-19 11:34:04 -0500) We've got 18 patches for this merge window, none of which are very major. 1. Andreas Gruenbacher contributed several patches to clean up the gfs2 block allocator to prepare for future performance enhancements. 2. Andy Price contributed a patch to fix a use-after-free problem. 3. I contributed some patches that fix gfs2's broken rgrplvb mount option. 4. I contributed some cleanup patches and error message improvements. 5. Steve Whitehouse and Abhi Das sent a patch to enable getlabel support. 6. Tim Smith contributed a patch to flush the glock delete workqueue at exit. Andreas Gruenbacher (8): gfs2: Always check the result of gfs2_rbm_from_block gfs2: Clean up out-of-bounds check in gfs2_rbm_from_block gfs2: Move rs_{sizehint, rgd_gh} fields into the inode gfs2: Remove unused RGRP_RSRV_MINBYTES definition gfs2: Rename bitmap.bi_{len => bytes} gfs2: Fix some minor typos gfs2: Fix marking bitmaps non-full gfs2: Pass resource group to rgblk_free Andrew Price (1): gfs2: Don't leave s_fs_info pointing to freed memory in init_sbd Bob Peterson (7): gfs2: improve debug information when lvb mismatches are found gfs2: Don't set GFS2_RDF_UPTODATE when the lvb is updated gfs2: slow the deluge of io error messages gfs2: Use fs_* functions instead of pr_* function where we can gfs2: Remove unnecessary gfs2_rlist_alloc parameter gfs2: write revokes should traverse sd_ail1_list in reverse gfs2: Fix minor typo: couln't versus couldn't. Steve Whitehouse (1): gfs2: getlabel support Tim Smith (1): GFS2: Flush the GFS2 delete workqueue before stopping the kernel threads fs/gfs2/bmap.c | 4 +- fs/gfs2/dir.c| 28 --- fs/gfs2/file.c | 18 - fs/gfs2/glock.c | 17 +++-- fs/gfs2/incore.h | 9 +-- fs/gfs2/lock_dlm.c | 10 +-- fs/gfs2/log.c| 11 ++- fs/gfs2/lops.c | 2 +- fs/gfs2/main.c | 2 + fs/gfs2/ops_fstype.c | 2 +- fs/gfs2/quota.c | 2 +- fs/gfs2/rgrp.c | 201 +-- fs/gfs2/rgrp.h | 11 +-- fs/gfs2/super.c | 4 +- fs/gfs2/trans.c | 15 ++-- fs/gfs2/util.c | 16 ++-- fs/gfs2/util.h | 2 +- fs/gfs2/xattr.c | 18 +++-- 18 files changed, 218 insertions(+), 154 deletions(-)
GFS2: Pull request #2 (merge window)
Hi Linus, Please consider pulling the following additional 3 patches for the GFS2 file system. Regards, Bob Peterson The following changes since commit e241e3f2bf975788a1b70dff2eb5180ca395b28e: Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost (2018-04-11 18:58:27 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.17.fixes2 for you to fetch changes up to 3e7aafc39c59c639ebd5961f893743f076df9b4e: GFS2: Minor improvements to comments and documentation (2018-04-12 10:07:51 -0700) We decided to request the latest three patches to be merged into this merge window while it's still open. 1. The first patch adds a new function to lockref: lockref_put_not_zero 2. The second patch fixes GFS2's glock dump code so it uses the new lockref function. This fixes a problem whereby lock dumps could miss glocks. 3. I made a minor patch to update some comments and fix the lock ordering text in our gfs2-glocks.txt Documentation file. Andreas Gruenbacher (2): lockref: Add lockref_put_not_zero gfs2: Stop using rhashtable_walk_peek Bob Peterson (1): GFS2: Minor improvements to comments and documentation Documentation/filesystems/gfs2-glocks.txt | 5 ++-- fs/gfs2/bmap.c| 2 +- fs/gfs2/glock.c | 47 ++- fs/gfs2/ops_fstype.c | 2 +- include/linux/lockref.h | 1 + lib/lockref.c | 28 ++ 6 files changed, 62 insertions(+), 23 deletions(-)
GFS2: Pull request #2 (merge window)
Hi Linus, Please consider pulling the following additional 3 patches for the GFS2 file system. Regards, Bob Peterson The following changes since commit e241e3f2bf975788a1b70dff2eb5180ca395b28e: Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost (2018-04-11 18:58:27 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.17.fixes2 for you to fetch changes up to 3e7aafc39c59c639ebd5961f893743f076df9b4e: GFS2: Minor improvements to comments and documentation (2018-04-12 10:07:51 -0700) We decided to request the latest three patches to be merged into this merge window while it's still open. 1. The first patch adds a new function to lockref: lockref_put_not_zero 2. The second patch fixes GFS2's glock dump code so it uses the new lockref function. This fixes a problem whereby lock dumps could miss glocks. 3. I made a minor patch to update some comments and fix the lock ordering text in our gfs2-glocks.txt Documentation file. Andreas Gruenbacher (2): lockref: Add lockref_put_not_zero gfs2: Stop using rhashtable_walk_peek Bob Peterson (1): GFS2: Minor improvements to comments and documentation Documentation/filesystems/gfs2-glocks.txt | 5 ++-- fs/gfs2/bmap.c| 2 +- fs/gfs2/glock.c | 47 ++- fs/gfs2/ops_fstype.c | 2 +- include/linux/lockref.h | 1 + lib/lockref.c | 28 ++ 6 files changed, 62 insertions(+), 23 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 1b88accf6a659c46d5c8e68912896f112bf882bb: Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost (2018-03-07 17:49:33 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.17.fixes for you to fetch changes up to 5e86d9d122d0d6fae00d9dff41c22d6f4d09f566: gfs2: time journal recovery steps accurately (2018-03-29 10:41:27 -0700) We've only got 9 GFS2 patches for this merge window: 1. Abhi Das contributed a patch to report journal recovery times more accurately during journal replay. 2. Andreas Gruenbacher contributed a patch to fix fallocate chunk size. 3. Andreas added a patch to correctly dirty inodes during rename. 4. Andreas added a patch to improve the comment for function gfs2_block_map. 5. Andreas added a patch to improve kernel trace point iomap end: The physical block address was added. 6. Andreas added a patch to fix a nasty file system corruption bug that surfaced in xfstests 476 in punch-hole/truncate. 7. Andreas fixed a problem Christoph Helwig pointed out, namely, that GFS2 was misusing the IOMAP_ZERO flag. The zeroing of new blocks was moved to the proper fallocate code. 8. I contributed a patch to declare function gfs2_remove_from_ail as static. 9. I added a patch to only set PageChecked for jdata page writes. Abhi Das (1): gfs2: time journal recovery steps accurately Andreas Gruenbacher (6): gfs2: Fix fallocate chunk size gfs2: Dirty source inode during rename gfs2: Improve gfs2_block_map comment gfs2: gfs2_iomap_end tracepoint: log block address gfs2: Check for the end of metadata in punch_hole gfs2: Zero out fallocated blocks in fallocate_chunk Bob Peterson (2): GFS2: Make function gfs2_remove_from_ail static GFS2: Only set PageChecked for jdata pages fs/gfs2/aops.c | 8 fs/gfs2/bmap.c | 38 -- fs/gfs2/dir.c| 13 ++--- fs/gfs2/file.c | 34 +- fs/gfs2/incore.h | 3 --- fs/gfs2/inode.c | 10 +- fs/gfs2/log.c| 2 +- fs/gfs2/log.h| 1 - fs/gfs2/quota.h | 2 ++ fs/gfs2/recovery.c | 20 ++-- fs/gfs2/trace_gfs2.h | 9 +++-- 11 files changed, 68 insertions(+), 72 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 1b88accf6a659c46d5c8e68912896f112bf882bb: Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost (2018-03-07 17:49:33 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.17.fixes for you to fetch changes up to 5e86d9d122d0d6fae00d9dff41c22d6f4d09f566: gfs2: time journal recovery steps accurately (2018-03-29 10:41:27 -0700) We've only got 9 GFS2 patches for this merge window: 1. Abhi Das contributed a patch to report journal recovery times more accurately during journal replay. 2. Andreas Gruenbacher contributed a patch to fix fallocate chunk size. 3. Andreas added a patch to correctly dirty inodes during rename. 4. Andreas added a patch to improve the comment for function gfs2_block_map. 5. Andreas added a patch to improve kernel trace point iomap end: The physical block address was added. 6. Andreas added a patch to fix a nasty file system corruption bug that surfaced in xfstests 476 in punch-hole/truncate. 7. Andreas fixed a problem Christoph Helwig pointed out, namely, that GFS2 was misusing the IOMAP_ZERO flag. The zeroing of new blocks was moved to the proper fallocate code. 8. I contributed a patch to declare function gfs2_remove_from_ail as static. 9. I added a patch to only set PageChecked for jdata page writes. Abhi Das (1): gfs2: time journal recovery steps accurately Andreas Gruenbacher (6): gfs2: Fix fallocate chunk size gfs2: Dirty source inode during rename gfs2: Improve gfs2_block_map comment gfs2: gfs2_iomap_end tracepoint: log block address gfs2: Check for the end of metadata in punch_hole gfs2: Zero out fallocated blocks in fallocate_chunk Bob Peterson (2): GFS2: Make function gfs2_remove_from_ail static GFS2: Only set PageChecked for jdata pages fs/gfs2/aops.c | 8 fs/gfs2/bmap.c | 38 -- fs/gfs2/dir.c| 13 ++--- fs/gfs2/file.c | 34 +- fs/gfs2/incore.h | 3 --- fs/gfs2/inode.c | 10 +- fs/gfs2/log.c| 2 +- fs/gfs2/log.h| 1 - fs/gfs2/quota.h | 2 ++ fs/gfs2/recovery.c | 20 ++-- fs/gfs2/trace_gfs2.h | 9 +++-- 11 files changed, 68 insertions(+), 72 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 1291a0d5049dbc06baaaf66a9ff3f53db493b19b: Linux 4.15-rc4 (2017-12-17 18:59:59 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.16.fixes for you to fetch changes up to af38816e4801d2868258085831172a003d1634ff: gfs2: Add a few missing newlines in messages (2018-01-30 10:32:30 -0700) We've got 30 patches for this merge window. These generally fall into five categories: (1) code cleanups, (2) patches related to adding PUNCH_HOLE support to GFS2, (3) support for new fields in resource group headers, (4) a few bug fixes, and (5) support for new fields in journal log headers. These new fields, which were previously unused, are designed to make it easier to track down file system corruption, and allow fsck.gfs2 to make more intelligent decisions when finding and fixing file system corruption. 1. Abhi Das contributed a patch to trim the ordered writes list, which used to grow uncontrollably until unmount. 2. Abhi also added a second patch to trim the ordered writes list. 3. Andreas Gruenbacher removed an unused parameter from function gfs2_write_jdata_pagevec. 4. Andreas also removed a pointless BUG_ON. 5. Andreas cleaned up an error patch in trunc_start. 6. Andreas removed some unused parameters from truncate. 7. Andreas made gfs2_journaled_truncate more efficient. 8. Andreas cleaned up the support functions for truncate. 9. Andreas fixed metadata read-ahead for truncate to make it faster. 10. Andreas fixed up the non-recursive truncate code. 11. Andreas reworked and renamed function gfs2_block_truncate_page. 12. Andreas generalized the non-recursive truncate code so it can take a range of values for punch_hole support. 13. Andreas introduced new PUNCH_HOLE support that take advantage of the previous patches. 14. Andreas contributed a patch to add fallocate with PUNCH_HOLE. 15. Andreas fixed some typos in the comments. 16. Andreas added function gfs2_max_stuffed_size to replace a piece of code that was needlessly repeated throughout GFS2. 17. Andreas made a minor cleanup to function gfs2_page_add_databufs. 18. Andreas got rid of function gfs2_log_header_in in preparation for the new log header fields. 19. Andreas also fixed up some missing newlines in kernel messages. 20. Andy Price added a new field to resource groups to indicate where the next one should be, to allow fsck.gfs2 to make better repairs. 21. Andy also added new rindex fields for consistency checking. 22. Andy added a crc field to resource group headers for consistency checking. 23. I added a patch to reduce redundancy in functions common to freeing dinodes. 24. I added a patch to reduce redundancy when writing log headers between the journalling code and journal recovery code. 25. I added a patch to add new fields to journal log headers based on a prototype from Steve Whitehouse. 26. I added a patch to log the source of journal log headers so we can better track down journal corruption. 27. I added a patch to fix a minor comment typo. 28. I also added a patch to fix a BUG in an unlink error path. 29. Steve Whitehouse contributed a patch to fix an incorrect use of the gfs2_blk2rgrpd function. 30. Tetsuo Handa contributed a patch that fixes incorrect error handling in function init_gfs2_fs. Abhi Das (2): gfs2: Trim the ordered write list in gfs2_ordered_write() gfs2: Remove inode from ordered write list in gfs2_write_inode() Andreas Gruenbacher (17): gfs2: Remove unused gfs2_write_jdata_pagevec parameter gfs2: Remove pointless BUG_ON gfs2: Clean up trunc_start error path gfs2: truncate: Remove unnecessary oldsize parameters gfs2: Remove minor gfs2_journaled_truncate inefficiencies gfs2: Clean up {lookup,fillup}_metapath gfs2: Fix metadata read-ahead during truncate gfs2: Improve non-recursive delete algorithm Turn gfs2_block_truncate_page into gfs2_block_zero_range gfs2: Generalize truncate code gfs2: Turn trunc_dealloc into punch_hole gfs2: Implement fallocate(FALLOC_FL_PUNCH_HOLE) gfs2: Typo fixes gfs2: Add gfs2_max_stuffed_size gfs2: Minor gfs2_page_add_databufs cleanup gfs2: Get rid of gfs2_log_header_in gfs2: Add a few missing newlines in messages Andrew Price (3): gfs2: Add a next-resource-group pointer to resource groups gfs2: Add rindex fields to rgrp headers gfs2: Add a crc field to resource group headers Bob Peterson (7): GFS2: Combine gfs2_free_di with gfs2_free_uninit_di GFS2: Reduce code redundancy writing log headers
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 1291a0d5049dbc06baaaf66a9ff3f53db493b19b: Linux 4.15-rc4 (2017-12-17 18:59:59 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.16.fixes for you to fetch changes up to af38816e4801d2868258085831172a003d1634ff: gfs2: Add a few missing newlines in messages (2018-01-30 10:32:30 -0700) We've got 30 patches for this merge window. These generally fall into five categories: (1) code cleanups, (2) patches related to adding PUNCH_HOLE support to GFS2, (3) support for new fields in resource group headers, (4) a few bug fixes, and (5) support for new fields in journal log headers. These new fields, which were previously unused, are designed to make it easier to track down file system corruption, and allow fsck.gfs2 to make more intelligent decisions when finding and fixing file system corruption. 1. Abhi Das contributed a patch to trim the ordered writes list, which used to grow uncontrollably until unmount. 2. Abhi also added a second patch to trim the ordered writes list. 3. Andreas Gruenbacher removed an unused parameter from function gfs2_write_jdata_pagevec. 4. Andreas also removed a pointless BUG_ON. 5. Andreas cleaned up an error patch in trunc_start. 6. Andreas removed some unused parameters from truncate. 7. Andreas made gfs2_journaled_truncate more efficient. 8. Andreas cleaned up the support functions for truncate. 9. Andreas fixed metadata read-ahead for truncate to make it faster. 10. Andreas fixed up the non-recursive truncate code. 11. Andreas reworked and renamed function gfs2_block_truncate_page. 12. Andreas generalized the non-recursive truncate code so it can take a range of values for punch_hole support. 13. Andreas introduced new PUNCH_HOLE support that take advantage of the previous patches. 14. Andreas contributed a patch to add fallocate with PUNCH_HOLE. 15. Andreas fixed some typos in the comments. 16. Andreas added function gfs2_max_stuffed_size to replace a piece of code that was needlessly repeated throughout GFS2. 17. Andreas made a minor cleanup to function gfs2_page_add_databufs. 18. Andreas got rid of function gfs2_log_header_in in preparation for the new log header fields. 19. Andreas also fixed up some missing newlines in kernel messages. 20. Andy Price added a new field to resource groups to indicate where the next one should be, to allow fsck.gfs2 to make better repairs. 21. Andy also added new rindex fields for consistency checking. 22. Andy added a crc field to resource group headers for consistency checking. 23. I added a patch to reduce redundancy in functions common to freeing dinodes. 24. I added a patch to reduce redundancy when writing log headers between the journalling code and journal recovery code. 25. I added a patch to add new fields to journal log headers based on a prototype from Steve Whitehouse. 26. I added a patch to log the source of journal log headers so we can better track down journal corruption. 27. I added a patch to fix a minor comment typo. 28. I also added a patch to fix a BUG in an unlink error path. 29. Steve Whitehouse contributed a patch to fix an incorrect use of the gfs2_blk2rgrpd function. 30. Tetsuo Handa contributed a patch that fixes incorrect error handling in function init_gfs2_fs. Abhi Das (2): gfs2: Trim the ordered write list in gfs2_ordered_write() gfs2: Remove inode from ordered write list in gfs2_write_inode() Andreas Gruenbacher (17): gfs2: Remove unused gfs2_write_jdata_pagevec parameter gfs2: Remove pointless BUG_ON gfs2: Clean up trunc_start error path gfs2: truncate: Remove unnecessary oldsize parameters gfs2: Remove minor gfs2_journaled_truncate inefficiencies gfs2: Clean up {lookup,fillup}_metapath gfs2: Fix metadata read-ahead during truncate gfs2: Improve non-recursive delete algorithm Turn gfs2_block_truncate_page into gfs2_block_zero_range gfs2: Generalize truncate code gfs2: Turn trunc_dealloc into punch_hole gfs2: Implement fallocate(FALLOC_FL_PUNCH_HOLE) gfs2: Typo fixes gfs2: Add gfs2_max_stuffed_size gfs2: Minor gfs2_page_add_databufs cleanup gfs2: Get rid of gfs2_log_header_in gfs2: Add a few missing newlines in messages Andrew Price (3): gfs2: Add a next-resource-group pointer to resource groups gfs2: Add rindex fields to rgrp headers gfs2: Add a crc field to resource group headers Bob Peterson (7): GFS2: Combine gfs2_free_di with gfs2_free_uninit_di GFS2: Reduce code redundancy writing log headers
GFS2: Pull request (merge window) (redo)
Hi Linus, I've adjusted this pull request to have a proper diffstat generated by git merge to a temporary branch, as I did the last time this happened. So you can pull this one, but probably after Ted's merge request: https://lkml.org/lkml/2017/11/12/256 Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 9e66317d3c92ddaab330c125dfe9d06eee268aff: Linux 4.14-rc3 (2017-10-01 14:54:54 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.15.fixes for you to fetch changes up to d0920a9cd7e735c429c510b523a100db82c937a1: gfs2: Allow gfs2_xattr_set to be called with the glock held (2017-10-31 14:26:59 +0100) We've got a total of 17 GFS2 patches for this merge window. The patches are basically in three categories: (1) patches related to broken xfstest cases, (2) patches related to improving iomap and start using it in GFS2, and (3) general typos and clarifications. Please note that one of the iomap patches extends beyond GFS2 and affects other file systems, but it was publically reviewed by a variety of file system people in the community. 1. Andreas has a patch that simply renames variable 'bsize' to 'factor' to clarify the logic related to gfs2_block_map. 2. He also has a patch to correctly set ctime in the setflags ioctl, which fixes broken xfstests test 277. 3. He also fixed broken xfstest 258, due to an atime initialization problem. 4. He also fixed broken xfstest 307, in which GFS2 was not setting ctime when setting acls. 5. He has a patch to switch general iomap code from blkno to disk offset for a variety of file systems. 6. He has a patch to add a new IOMAP_F_DATA_INLINE flag for iomap to indicate blocks that have data mixed with metadata. 7. I contributed a patch to make inode height info part of the 'metapath' data structure to facilitate using iomap in GFS2. 8. I have a patch to start using iomap inside GFS2 and switch GFS2's block_map functions to use iomap under the covers. 9. I have a patch to switch GFS2's fiemap implementation from using block_map to using iomap under the covers. 10. Andreas has a patch to implement SEEK_HOLE and SEEK_DATA via iomap in GFS2. 11. I have a patch related to journaled data pages not being properly synced to media when writing inodes. This was caught with xfstests. 12. I have a patch to fix another failing xfstest case in which switching a file from ordered_write to journaled data via set_flags caused a deadlock. 13. Andreas has a patch to fix failing xfstest case 066, which was due to not properly syncing dirty inodes when changing extended attributes. 14. Andreas fixed a minor typo in a comment. 15. Andreas contributed a patch to partially fix xfstest 424, which involved GET_FLAGS and SET_FLAGS ioctl. This is also a cleanup and simplification of the translation of flags from fs flags to gfs2 flags. 16. He also added support for STATX_ATTR_ in statx, which fixed broken xfstest 424. 17. He also contributed a fix for failing xfstest 093 which fixes a recursive glock problem with gfs2_xattr_get and _set. Andreas Gruenbacher (13): gfs2: Clarify gfs2_block_map gfs2: Update ctime in setflags ioctl gfs2: Support negative atimes gfs2: Always update inode ctime in set_acl iomap: Switch from blkno to disk offset iomap: Add IOMAP_F_DATA_INLINE flag Merge branch 'master' of git://git.kernel.org/.../tytso/ext4 gfs2: Implement SEEK_HOLE / SEEK_DATA via iomap gfs2: Fix xattr fsync gfs2: Fix a harmless typo gfs2: Fix and clean up {GET,SET}FLAGS ioctl gfs2: Add support for statx inode flags gfs2: Allow gfs2_xattr_set to be called with the glock held Bob Peterson (5): GFS2: Make height info part of metapath GFS2: Implement iomap for block_map GFS2: Switch fiemap implementation to use iomap GFS2: flush the log and all pages for jdata as we do for WB_SYNC_ALL GFS2: Take inode off order_write list when setting jdata flag fs/gfs2/Kconfig | 1 + fs/gfs2/acl.c | 1 + fs/gfs2/bmap.c| 322 +-- fs/gfs2/bmap.h| 4 + fs/gfs2/file.c| 124 ++- fs/gfs2/inode.c | 89 ++-- fs/gfs2/inode.h | 2 + fs/gfs2/super.c | 5 +- fs/gfs2/trace_gfs2.h | 65 +++ fs/gfs2/trans.c | 2 +- fs/gfs2/xattr.c | 63 ++ include/linux/iomap.h | 3 +- 12 files changed, 471 insertions(+), 210 deletions(-)
GFS2: Pull request (merge window) (redo)
Hi Linus, I've adjusted this pull request to have a proper diffstat generated by git merge to a temporary branch, as I did the last time this happened. So you can pull this one, but probably after Ted's merge request: https://lkml.org/lkml/2017/11/12/256 Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 9e66317d3c92ddaab330c125dfe9d06eee268aff: Linux 4.14-rc3 (2017-10-01 14:54:54 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.15.fixes for you to fetch changes up to d0920a9cd7e735c429c510b523a100db82c937a1: gfs2: Allow gfs2_xattr_set to be called with the glock held (2017-10-31 14:26:59 +0100) We've got a total of 17 GFS2 patches for this merge window. The patches are basically in three categories: (1) patches related to broken xfstest cases, (2) patches related to improving iomap and start using it in GFS2, and (3) general typos and clarifications. Please note that one of the iomap patches extends beyond GFS2 and affects other file systems, but it was publically reviewed by a variety of file system people in the community. 1. Andreas has a patch that simply renames variable 'bsize' to 'factor' to clarify the logic related to gfs2_block_map. 2. He also has a patch to correctly set ctime in the setflags ioctl, which fixes broken xfstests test 277. 3. He also fixed broken xfstest 258, due to an atime initialization problem. 4. He also fixed broken xfstest 307, in which GFS2 was not setting ctime when setting acls. 5. He has a patch to switch general iomap code from blkno to disk offset for a variety of file systems. 6. He has a patch to add a new IOMAP_F_DATA_INLINE flag for iomap to indicate blocks that have data mixed with metadata. 7. I contributed a patch to make inode height info part of the 'metapath' data structure to facilitate using iomap in GFS2. 8. I have a patch to start using iomap inside GFS2 and switch GFS2's block_map functions to use iomap under the covers. 9. I have a patch to switch GFS2's fiemap implementation from using block_map to using iomap under the covers. 10. Andreas has a patch to implement SEEK_HOLE and SEEK_DATA via iomap in GFS2. 11. I have a patch related to journaled data pages not being properly synced to media when writing inodes. This was caught with xfstests. 12. I have a patch to fix another failing xfstest case in which switching a file from ordered_write to journaled data via set_flags caused a deadlock. 13. Andreas has a patch to fix failing xfstest case 066, which was due to not properly syncing dirty inodes when changing extended attributes. 14. Andreas fixed a minor typo in a comment. 15. Andreas contributed a patch to partially fix xfstest 424, which involved GET_FLAGS and SET_FLAGS ioctl. This is also a cleanup and simplification of the translation of flags from fs flags to gfs2 flags. 16. He also added support for STATX_ATTR_ in statx, which fixed broken xfstest 424. 17. He also contributed a fix for failing xfstest 093 which fixes a recursive glock problem with gfs2_xattr_get and _set. Andreas Gruenbacher (13): gfs2: Clarify gfs2_block_map gfs2: Update ctime in setflags ioctl gfs2: Support negative atimes gfs2: Always update inode ctime in set_acl iomap: Switch from blkno to disk offset iomap: Add IOMAP_F_DATA_INLINE flag Merge branch 'master' of git://git.kernel.org/.../tytso/ext4 gfs2: Implement SEEK_HOLE / SEEK_DATA via iomap gfs2: Fix xattr fsync gfs2: Fix a harmless typo gfs2: Fix and clean up {GET,SET}FLAGS ioctl gfs2: Add support for statx inode flags gfs2: Allow gfs2_xattr_set to be called with the glock held Bob Peterson (5): GFS2: Make height info part of metapath GFS2: Implement iomap for block_map GFS2: Switch fiemap implementation to use iomap GFS2: flush the log and all pages for jdata as we do for WB_SYNC_ALL GFS2: Take inode off order_write list when setting jdata flag fs/gfs2/Kconfig | 1 + fs/gfs2/acl.c | 1 + fs/gfs2/bmap.c| 322 +-- fs/gfs2/bmap.h| 4 + fs/gfs2/file.c| 124 ++- fs/gfs2/inode.c | 89 ++-- fs/gfs2/inode.h | 2 + fs/gfs2/super.c | 5 +- fs/gfs2/trace_gfs2.h | 65 +++ fs/gfs2/trans.c | 2 +- fs/gfs2/xattr.c | 63 ++ include/linux/iomap.h | 3 +- 12 files changed, 471 insertions(+), 210 deletions(-)
Re: GFS2: Pull request (merge window)
- Original Message - | Hi Linus, | | Please consider pulling the following changes for the GFS2 file system. | | Regards, | | Bob Peterson | | The following changes since commit 9e66317d3c92ddaab330c125dfe9d06eee268aff: | | Linux 4.14-rc3 (2017-10-01 14:54:54 -0700) | | are available in the git repository at: | | git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git | tags/gfs2-4.15.fixes | | for you to fetch changes up to d0920a9cd7e735c429c510b523a100db82c937a1: | | gfs2: Allow gfs2_xattr_set to be called with the glock held (2017-10-31 | 14:26:59 +0100) Hi Linus, I guess I jumped the gun on this. Sorry. This pull request has a dependency on patches that are going through git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 master due to the iomap changes we need that required another merge branch. So maybe it's best to hold off until those changes get merged. I'll see if I can send a replacement pull request. Regards, Bob Peterson
Re: GFS2: Pull request (merge window)
- Original Message - | Hi Linus, | | Please consider pulling the following changes for the GFS2 file system. | | Regards, | | Bob Peterson | | The following changes since commit 9e66317d3c92ddaab330c125dfe9d06eee268aff: | | Linux 4.14-rc3 (2017-10-01 14:54:54 -0700) | | are available in the git repository at: | | git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git | tags/gfs2-4.15.fixes | | for you to fetch changes up to d0920a9cd7e735c429c510b523a100db82c937a1: | | gfs2: Allow gfs2_xattr_set to be called with the glock held (2017-10-31 | 14:26:59 +0100) Hi Linus, I guess I jumped the gun on this. Sorry. This pull request has a dependency on patches that are going through git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 master due to the iomap changes we need that required another merge branch. So maybe it's best to hold off until those changes get merged. I'll see if I can send a replacement pull request. Regards, Bob Peterson
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 9e66317d3c92ddaab330c125dfe9d06eee268aff: Linux 4.14-rc3 (2017-10-01 14:54:54 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.15.fixes for you to fetch changes up to d0920a9cd7e735c429c510b523a100db82c937a1: gfs2: Allow gfs2_xattr_set to be called with the glock held (2017-10-31 14:26:59 +0100) We've got a total of 17 GFS2 patches for this merge window. The patches are basically in three categories: (1) patches related to broken xfstest cases, (2) patches related to improving iomap and start using it in GFS2, and (3) general typos and clarifications. Please note that one of the iomap patches extends beyond GFS2 and affects other file systems, but it was publically reviewed by a variety of file system people in the community. 1. Andreas has a patch that simply renames variable 'bsize' to 'factor' to clarify the logic related to gfs2_block_map. 2. He also has a patch to correctly set ctime in the setflags ioctl, which fixes broken xfstests test 277. 3. He also fixed broken xfstest 258, due to an atime initialization problem. 4. He also fixed broken xfstest 307, in which GFS2 was not setting ctime when setting acls. 5. He has a patch to switch general iomap code from blkno to disk offset for a variety of file systems. 6. He has a patch to add a new IOMAP_F_DATA_INLINE flag for iomap to indicate blocks that have data mixed with metadata. 7. I contributed a patch to make inode height info part of the 'metapath' data structure to facilitate using iomap in GFS2. 8. I have a patch to start using iomap inside GFS2 and switch GFS2's block_map functions to use iomap under the covers. 9. I have a patch to switch GFS2's fiemap implementation from using block_map to using iomap under the covers. 10. Andreas has a patch to implement SEEK_HOLE and SEEK_DATA via iomap in GFS2. 11. I have a patch related to journaled data pages not being properly synced to media when writing inodes. This was caught with xfstests. 12. I have a patch to fix another failing xfstest case in which switching a file from ordered_write to journaled data via set_flags caused a deadlock. 13. Andreas has a patch to fix failing xfstest case 066, which was due to not properly syncing dirty inodes when changing extended attributes. 14. Andreas fixed a minor typo in a comment. 15. Andreas contributed a patch to partially fix xfstest 424, which involved GET_FLAGS and SET_FLAGS ioctl. This is also a cleanup and simplification of the translation of flags from fs flags to gfs2 flags. 16. He also added support for STATX_ATTR_ in statx, which fixed broken xfstest 424. 17. He also contributed a fix for failing xfstest 093 which fixes a recursive glock problem with gfs2_xattr_get and _set. Andreas Gruenbacher (13): gfs2: Clarify gfs2_block_map gfs2: Update ctime in setflags ioctl gfs2: Support negative atimes gfs2: Always update inode ctime in set_acl iomap: Switch from blkno to disk offset iomap: Add IOMAP_F_DATA_INLINE flag Merge branch 'master' of git://git.kernel.org/.../tytso/ext4 gfs2: Implement SEEK_HOLE / SEEK_DATA via iomap gfs2: Fix xattr fsync gfs2: Fix a harmless typo gfs2: Fix and clean up {GET,SET}FLAGS ioctl gfs2: Add support for statx inode flags gfs2: Allow gfs2_xattr_set to be called with the glock held Bob Peterson (5): GFS2: Make height info part of metapath GFS2: Implement iomap for block_map GFS2: Switch fiemap implementation to use iomap GFS2: flush the log and all pages for jdata as we do for WB_SYNC_ALL GFS2: Take inode off order_write list when setting jdata flag fs/buffer.c | 4 +- fs/dax.c | 2 +- fs/ext2/inode.c | 4 +- fs/ext4/inode.c | 4 +- fs/gfs2/Kconfig | 1 + fs/gfs2/acl.c | 1 + fs/gfs2/bmap.c| 322 +- fs/gfs2/bmap.h| 4 + fs/gfs2/file.c| 124 ++- fs/gfs2/inode.c | 89 ++ fs/gfs2/inode.h | 2 + fs/gfs2/super.c | 5 +- fs/gfs2/trace_gfs2.h | 65 ++ fs/gfs2/trans.c | 2 +- fs/gfs2/xattr.c | 63 -- fs/iomap.c| 13 +- fs/nfsd/blocklayout.c | 4 +- fs/xfs/xfs_iomap.c| 6 +- include/linux/iomap.h | 18 +-- 19 files changed, 498 insertions(+), 235 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 9e66317d3c92ddaab330c125dfe9d06eee268aff: Linux 4.14-rc3 (2017-10-01 14:54:54 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.15.fixes for you to fetch changes up to d0920a9cd7e735c429c510b523a100db82c937a1: gfs2: Allow gfs2_xattr_set to be called with the glock held (2017-10-31 14:26:59 +0100) We've got a total of 17 GFS2 patches for this merge window. The patches are basically in three categories: (1) patches related to broken xfstest cases, (2) patches related to improving iomap and start using it in GFS2, and (3) general typos and clarifications. Please note that one of the iomap patches extends beyond GFS2 and affects other file systems, but it was publically reviewed by a variety of file system people in the community. 1. Andreas has a patch that simply renames variable 'bsize' to 'factor' to clarify the logic related to gfs2_block_map. 2. He also has a patch to correctly set ctime in the setflags ioctl, which fixes broken xfstests test 277. 3. He also fixed broken xfstest 258, due to an atime initialization problem. 4. He also fixed broken xfstest 307, in which GFS2 was not setting ctime when setting acls. 5. He has a patch to switch general iomap code from blkno to disk offset for a variety of file systems. 6. He has a patch to add a new IOMAP_F_DATA_INLINE flag for iomap to indicate blocks that have data mixed with metadata. 7. I contributed a patch to make inode height info part of the 'metapath' data structure to facilitate using iomap in GFS2. 8. I have a patch to start using iomap inside GFS2 and switch GFS2's block_map functions to use iomap under the covers. 9. I have a patch to switch GFS2's fiemap implementation from using block_map to using iomap under the covers. 10. Andreas has a patch to implement SEEK_HOLE and SEEK_DATA via iomap in GFS2. 11. I have a patch related to journaled data pages not being properly synced to media when writing inodes. This was caught with xfstests. 12. I have a patch to fix another failing xfstest case in which switching a file from ordered_write to journaled data via set_flags caused a deadlock. 13. Andreas has a patch to fix failing xfstest case 066, which was due to not properly syncing dirty inodes when changing extended attributes. 14. Andreas fixed a minor typo in a comment. 15. Andreas contributed a patch to partially fix xfstest 424, which involved GET_FLAGS and SET_FLAGS ioctl. This is also a cleanup and simplification of the translation of flags from fs flags to gfs2 flags. 16. He also added support for STATX_ATTR_ in statx, which fixed broken xfstest 424. 17. He also contributed a fix for failing xfstest 093 which fixes a recursive glock problem with gfs2_xattr_get and _set. Andreas Gruenbacher (13): gfs2: Clarify gfs2_block_map gfs2: Update ctime in setflags ioctl gfs2: Support negative atimes gfs2: Always update inode ctime in set_acl iomap: Switch from blkno to disk offset iomap: Add IOMAP_F_DATA_INLINE flag Merge branch 'master' of git://git.kernel.org/.../tytso/ext4 gfs2: Implement SEEK_HOLE / SEEK_DATA via iomap gfs2: Fix xattr fsync gfs2: Fix a harmless typo gfs2: Fix and clean up {GET,SET}FLAGS ioctl gfs2: Add support for statx inode flags gfs2: Allow gfs2_xattr_set to be called with the glock held Bob Peterson (5): GFS2: Make height info part of metapath GFS2: Implement iomap for block_map GFS2: Switch fiemap implementation to use iomap GFS2: flush the log and all pages for jdata as we do for WB_SYNC_ALL GFS2: Take inode off order_write list when setting jdata flag fs/buffer.c | 4 +- fs/dax.c | 2 +- fs/ext2/inode.c | 4 +- fs/ext4/inode.c | 4 +- fs/gfs2/Kconfig | 1 + fs/gfs2/acl.c | 1 + fs/gfs2/bmap.c| 322 +- fs/gfs2/bmap.h| 4 + fs/gfs2/file.c| 124 ++- fs/gfs2/inode.c | 89 ++ fs/gfs2/inode.h | 2 + fs/gfs2/super.c | 5 +- fs/gfs2/trace_gfs2.h | 65 ++ fs/gfs2/trans.c | 2 +- fs/gfs2/xattr.c | 63 -- fs/iomap.c| 13 +- fs/nfsd/blocklayout.c | 4 +- fs/xfs/xfs_iomap.c| 6 +- include/linux/iomap.h | 18 +-- 19 files changed, 498 insertions(+), 235 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Sorry this is a bit rushed, but I wanted to get this out this week, and I'll be traveling for the next ten days with unknown Internet access. Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit da029c11e6b12f321f36dac8771e833b65cec962: exec: Limit arg stack to at most 75% of _STK_LIM (2017-07-07 20:05:08 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.14.fixes for you to fetch changes up to 309e8cda596f6552a32dd14b969ce9b17f837f2f: gfs2: preserve i_mode if __gfs2_set_acl() fails (2017-08-31 07:53:15 -0500) We've got a whopping 29 GFS2 patches for this merge window, mainly because we held some back from the previous merge window until we could get them perfected and well tested. We have a couple patch sets, including my patch set for protecting glock gl_object and Andreas Gruenbacher's patch set to fix the long-standing shrink- slab hang, plus a bunch of assorted bugs and cleanups: 1. I fixed a bug whereby an IO error would lead to a double-brelse. 2. Andreas Gruenbacher made a minor cleanup to call his relatively new function, gfs2_holder_initialized, rather than doing it manually. This was just missed by a previous patch set. 3. Jan Kara fixed a bug whereby the SGID was being cleared when inheriting ACLs. 4. Andreas found a bug and fixed it in his previous patch, "Get rid of flush_delayed_work in gfs2_evict_inode". A call to flush_delayed_work was deleted from *gfs2_inode_lookup and added to gfs2_create_inode. 5. Wang Xibo found and fixed a list_add call in inode_go_lock that specified the parameters in the wrong order. 6. Coly Li submitted a patch to add the REQ_PRIO to some of GFS2's metadata reads that were accidentally missing them. 7 - 10. I submitted a 4-patch set to protect the glock gl_object field. GFS2 was setting and checking gl_object with no locking mechanism, so the value was occasionally stomped on, which caused file system corruption. 11. I submitted a small cleanup to function gfs2_clear_rgrpd. It was needlessly adding rgrp glocks to the lru list, then pulling them back off immediately. The rgrp glocks don't use the lru list anyway, so doing so was just a waste of time. 12. I submitted a patch that checks the GLOF_LRU flag on a glock before trying to remove it from the lru_list. This avoids a lot of unnecessary spin_lock contention. 13. I submitted a patch to delete GFS2's debugfs files only after we evict all the glocks. Before this patch, GFS2 would delete the debugfs files, and if unmount hung waiting for a glock, there was no way to debug the problem. Now, if a hang occurs during umount, we can examine the debugfs files to figure out why it's hung. 14. Andreas Gruenbacher submitted a patch to fix some trivial typos. 15 - 19. Andreas also submitted a five-part patch set to fix the longstanding hang involving the slab shrinker: dlm requires memory, calls the inode shrinker, which calls gfs2's evict, which calls back into DLM before it can evict an inode. 20. Abhi Das submitted a patch to forcibly flush the active items list to relieve memory pressure. This fixes a long-standing bug whereby GFS2 was getting hung permanently in balance_dirty_pages. 21. Thomas Tai submitted a patch to fix a slab corruption problem due to a residual pointer left in the lock_dlm lockstruct. 22. I submitted a patch to withdraw the file system if IO errors are encountered while writing to the journals or statfs system file which were previously not being sent back up. Before, some IO errors were sometimes not be detected for several hours, and at recovery time, the journal errors made journal replay impossible. 23. Andreas has a patch to fix an annoying format-truncation compiler warning so GFS2 compiles cleanly. 24. I have a patch that fixes a handful of sparse compiler warnings. 25. Andreas fixed up an useless gl_object warning caused by an earlier patch. 26. Arvind Yadav added a patch to properly constify our rhashtable params declare. 27. I added a patch to fix a regression caused by the non-recursive delete and truncate patch that caused file system blocks to not be properly freed. 28. Ernesto A. Fernández added a patch to fix a place where GFS2 would send back the wrong return code setting extended attributes. 29. Ernesto also added a patch to fix a case in which GFS2 was improperly setting an inode's i_mode, potentially granting access to the wrong users. Abhi Das (1): gfs2: forcibly flush ail to relieve memory pressure Andreas Gruenbacher (10): gfs2: Lock holder cleanup (fixup) gfs2: Fixup to "Get
GFS2: Pull request (merge window)
Hi Linus, Sorry this is a bit rushed, but I wanted to get this out this week, and I'll be traveling for the next ten days with unknown Internet access. Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit da029c11e6b12f321f36dac8771e833b65cec962: exec: Limit arg stack to at most 75% of _STK_LIM (2017-07-07 20:05:08 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.14.fixes for you to fetch changes up to 309e8cda596f6552a32dd14b969ce9b17f837f2f: gfs2: preserve i_mode if __gfs2_set_acl() fails (2017-08-31 07:53:15 -0500) We've got a whopping 29 GFS2 patches for this merge window, mainly because we held some back from the previous merge window until we could get them perfected and well tested. We have a couple patch sets, including my patch set for protecting glock gl_object and Andreas Gruenbacher's patch set to fix the long-standing shrink- slab hang, plus a bunch of assorted bugs and cleanups: 1. I fixed a bug whereby an IO error would lead to a double-brelse. 2. Andreas Gruenbacher made a minor cleanup to call his relatively new function, gfs2_holder_initialized, rather than doing it manually. This was just missed by a previous patch set. 3. Jan Kara fixed a bug whereby the SGID was being cleared when inheriting ACLs. 4. Andreas found a bug and fixed it in his previous patch, "Get rid of flush_delayed_work in gfs2_evict_inode". A call to flush_delayed_work was deleted from *gfs2_inode_lookup and added to gfs2_create_inode. 5. Wang Xibo found and fixed a list_add call in inode_go_lock that specified the parameters in the wrong order. 6. Coly Li submitted a patch to add the REQ_PRIO to some of GFS2's metadata reads that were accidentally missing them. 7 - 10. I submitted a 4-patch set to protect the glock gl_object field. GFS2 was setting and checking gl_object with no locking mechanism, so the value was occasionally stomped on, which caused file system corruption. 11. I submitted a small cleanup to function gfs2_clear_rgrpd. It was needlessly adding rgrp glocks to the lru list, then pulling them back off immediately. The rgrp glocks don't use the lru list anyway, so doing so was just a waste of time. 12. I submitted a patch that checks the GLOF_LRU flag on a glock before trying to remove it from the lru_list. This avoids a lot of unnecessary spin_lock contention. 13. I submitted a patch to delete GFS2's debugfs files only after we evict all the glocks. Before this patch, GFS2 would delete the debugfs files, and if unmount hung waiting for a glock, there was no way to debug the problem. Now, if a hang occurs during umount, we can examine the debugfs files to figure out why it's hung. 14. Andreas Gruenbacher submitted a patch to fix some trivial typos. 15 - 19. Andreas also submitted a five-part patch set to fix the longstanding hang involving the slab shrinker: dlm requires memory, calls the inode shrinker, which calls gfs2's evict, which calls back into DLM before it can evict an inode. 20. Abhi Das submitted a patch to forcibly flush the active items list to relieve memory pressure. This fixes a long-standing bug whereby GFS2 was getting hung permanently in balance_dirty_pages. 21. Thomas Tai submitted a patch to fix a slab corruption problem due to a residual pointer left in the lock_dlm lockstruct. 22. I submitted a patch to withdraw the file system if IO errors are encountered while writing to the journals or statfs system file which were previously not being sent back up. Before, some IO errors were sometimes not be detected for several hours, and at recovery time, the journal errors made journal replay impossible. 23. Andreas has a patch to fix an annoying format-truncation compiler warning so GFS2 compiles cleanly. 24. I have a patch that fixes a handful of sparse compiler warnings. 25. Andreas fixed up an useless gl_object warning caused by an earlier patch. 26. Arvind Yadav added a patch to properly constify our rhashtable params declare. 27. I added a patch to fix a regression caused by the non-recursive delete and truncate patch that caused file system blocks to not be properly freed. 28. Ernesto A. Fernández added a patch to fix a place where GFS2 would send back the wrong return code setting extended attributes. 29. Ernesto also added a patch to fix a case in which GFS2 was improperly setting an inode's i_mode, potentially granting access to the wrong users. Abhi Das (1): gfs2: forcibly flush ail to relieve memory pressure Andreas Gruenbacher (10): gfs2: Lock holder cleanup (fixup) gfs2: Fixup to "Get
GFS2: Pull request (merge window) addendum
Hi Linus, Sorry for the additional merge request, but Andreas discovered this problem soon after you processed our last gfs2 merge. This fixes a regression introduced by a patch we did in mid-2015, so best to get it fixed. It just re-adds code that had been there originally. Please consider pulling the following additional patch for the GFS2 file system. Regards, Bob Peterson The following changes since commit 9b51f04424e17051a89ab32d892ca66b2a104825: Merge branch 'parisc-4.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux (2017-07-05 17:41:31 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.13.fixes.addendum for you to fetch changes up to 961ae1d83d055a4b9ebbfb4cc8ca62ec1a7a3b74: gfs2: Fix glock rhashtable rcu bug (2017-07-07 13:22:05 -0500) This is a high-priority addendum patch for a regression introduced by commit 88ffbf3e03. Some code was reverted that should not have been. This patch from Andreas Gruenbacher adds it back in. gfs2: Fix glock rhashtable rcu bug Andreas Gruenbacher (1): gfs2: Fix glock rhashtable rcu bug fs/gfs2/glock.c | 11 +-- fs/gfs2/incore.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-)
GFS2: Pull request (merge window) addendum
Hi Linus, Sorry for the additional merge request, but Andreas discovered this problem soon after you processed our last gfs2 merge. This fixes a regression introduced by a patch we did in mid-2015, so best to get it fixed. It just re-adds code that had been there originally. Please consider pulling the following additional patch for the GFS2 file system. Regards, Bob Peterson The following changes since commit 9b51f04424e17051a89ab32d892ca66b2a104825: Merge branch 'parisc-4.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux (2017-07-05 17:41:31 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.13.fixes.addendum for you to fetch changes up to 961ae1d83d055a4b9ebbfb4cc8ca62ec1a7a3b74: gfs2: Fix glock rhashtable rcu bug (2017-07-07 13:22:05 -0500) This is a high-priority addendum patch for a regression introduced by commit 88ffbf3e03. Some code was reverted that should not have been. This patch from Andreas Gruenbacher adds it back in. gfs2: Fix glock rhashtable rcu bug Andreas Gruenbacher (1): gfs2: Fix glock rhashtable rcu bug fs/gfs2/glock.c | 11 +-- fs/gfs2/incore.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 3ef2bc099d1cce09e2844467e2ced98e1a44609d: Merge tag 'devicetree-for-4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux (2017-05-05 19:33:07 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.13.fixes for you to fetch changes up to 29695254ec51506d97b2a90ac27baabb438c70dd: GFS2: constify attribute_group structures. (2017-07-05 07:21:14 -0500) We've got eight GFS2 patches for this merge window: 1. Andreas Gruenbacher has four patches related to cleaning up the GFS2 inode evict process. This is about half of his patches designed to fix a long-standing GFS2 hang related to the inode shrinker. (Shrinker calls gfs2 evict, evict calls DLM, DLM requires memory and blocks on the shrinker.) These 4 patches have been well tested. His second set of patches are still being tested, so I plan to hold them until the next merge window, after we have more weeks of testing. The first patch eliminates the flush_delayed_work, which can block. 2. Andreas's second patch protects setting of gl_object for rgrps with a spin_lock to prevent proven races. 3. His third patch introduces a centralized mechanism for queueing glock work with better reference counting, to prevent more races. 4. His fourth patch retains a reference to inode glocks when an error occurs while creating an inode. This keeps the subsequent evict from needing to reacquire the glock, which might call into DLM and block in low memory conditions. 5. Arvind Yadav has a patch to add const to attribute_group structures. 6. I have a patch to detect directory entry inconsistencies and withdraw the file system if any are found. Better that than silent corruption. 7. I have a patch to remove a vestigial variable from glock structures, saving some slab space. 8. I have another patch to remove a vestigial variable from the GFS2 in-core superblock structure. Andreas Gruenbacher (4): gfs2: Get rid of flush_delayed_work in gfs2_evict_inode gfs2: Protect gl->gl_object by spin lock gfs2: Clean up glock work enqueuing gfs2: gfs2_create_inode: Keep glock across iput Arvind Yadav (1): GFS2: constify attribute_group structures. Bob Peterson (3): GFS2: Withdraw when directory entry inconsistencies are detected GFS2: Remove gl_list from glock structure GFS2: Eliminate vestigial sd_log_flush_wrapped fs/gfs2/bmap.c | 2 +- fs/gfs2/dir.c| 7 ++-- fs/gfs2/glock.c | 124 +-- fs/gfs2/glock.h | 7 fs/gfs2/glops.c | 56 - fs/gfs2/incore.h | 5 ++- fs/gfs2/inode.c | 19 + fs/gfs2/log.c| 3 -- fs/gfs2/lops.c | 6 +-- fs/gfs2/main.c | 1 - fs/gfs2/rgrp.c | 6 +-- fs/gfs2/super.c | 33 +-- fs/gfs2/sys.c| 4 +- fs/gfs2/xattr.c | 4 +- 14 files changed, 175 insertions(+), 102 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit 3ef2bc099d1cce09e2844467e2ced98e1a44609d: Merge tag 'devicetree-for-4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux (2017-05-05 19:33:07 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.13.fixes for you to fetch changes up to 29695254ec51506d97b2a90ac27baabb438c70dd: GFS2: constify attribute_group structures. (2017-07-05 07:21:14 -0500) We've got eight GFS2 patches for this merge window: 1. Andreas Gruenbacher has four patches related to cleaning up the GFS2 inode evict process. This is about half of his patches designed to fix a long-standing GFS2 hang related to the inode shrinker. (Shrinker calls gfs2 evict, evict calls DLM, DLM requires memory and blocks on the shrinker.) These 4 patches have been well tested. His second set of patches are still being tested, so I plan to hold them until the next merge window, after we have more weeks of testing. The first patch eliminates the flush_delayed_work, which can block. 2. Andreas's second patch protects setting of gl_object for rgrps with a spin_lock to prevent proven races. 3. His third patch introduces a centralized mechanism for queueing glock work with better reference counting, to prevent more races. 4. His fourth patch retains a reference to inode glocks when an error occurs while creating an inode. This keeps the subsequent evict from needing to reacquire the glock, which might call into DLM and block in low memory conditions. 5. Arvind Yadav has a patch to add const to attribute_group structures. 6. I have a patch to detect directory entry inconsistencies and withdraw the file system if any are found. Better that than silent corruption. 7. I have a patch to remove a vestigial variable from glock structures, saving some slab space. 8. I have another patch to remove a vestigial variable from the GFS2 in-core superblock structure. Andreas Gruenbacher (4): gfs2: Get rid of flush_delayed_work in gfs2_evict_inode gfs2: Protect gl->gl_object by spin lock gfs2: Clean up glock work enqueuing gfs2: gfs2_create_inode: Keep glock across iput Arvind Yadav (1): GFS2: constify attribute_group structures. Bob Peterson (3): GFS2: Withdraw when directory entry inconsistencies are detected GFS2: Remove gl_list from glock structure GFS2: Eliminate vestigial sd_log_flush_wrapped fs/gfs2/bmap.c | 2 +- fs/gfs2/dir.c| 7 ++-- fs/gfs2/glock.c | 124 +-- fs/gfs2/glock.h | 7 fs/gfs2/glops.c | 56 - fs/gfs2/incore.h | 5 ++- fs/gfs2/inode.c | 19 + fs/gfs2/log.c| 3 -- fs/gfs2/lops.c | 6 +-- fs/gfs2/main.c | 1 - fs/gfs2/rgrp.c | 6 +-- fs/gfs2/super.c | 33 +-- fs/gfs2/sys.c| 4 +- fs/gfs2/xattr.c | 4 +- 14 files changed, 175 insertions(+), 102 deletions(-)
Re: GFS2: Pull request (merge window)
On Fri, May 5, 2017 at 1:28 PM, Bob Petersonwrote: > > I asked around, but nobody could tell me what went wrong. Strangely, > this command: > > git log --oneline --right-only origin/master...FETCH_HEAD --stat > > doesn't show this, but this one does: > > git diff --stat --right-only origin/master...FETCH_HEAD So the fundamental difference between "git log" and "git diff" is that one is a "ser operation" on the commits in question, and the other is fundamentally a "operation between two endpoints". And that's why "git log" will always show the "right" thing - because even in the presense of complex history, there's no ambiguity about which commits are part of the new set, and which are in the old set. So "git log" just does a set difference, and shows the commits in one set but not the other. But "git diff", because it is fundamentally about two particular points in history, can have a hard time once you have complex history: what are the two points? In particular, what "git diff origin/master...FETCH_HEAD" means is really: - find the common point (git calls it "merge base" because the common point is also used for merging) between the two commits (origin/master and FETCH_HEAD) - do the diff from that common point to the end result (FETCH_HEAD) and for linear history that is all very obvious and unambiguous. But once you have non-linear history, and particularly once you have back-merges (ie you're not just merging work that is uniquely your own from multiple of your *own* branches, but you're also doing merges of upstream code), the notion of that "common case" is no longer unambiguous. There is not necessarily any *one* common base, there can be multiple points in history that are common between the two branches, but are distinct points of history (ie one is not an ancestor of another). And since a diff is fundamentally about just two end-points ("what are the differences between these two points in the history"), "git diff" fundamentally cannot handle that case without help. So "git diff" will pick the first of the merge bases it finds, and just use that. Which even in the presense of more complex history will often work by luck, but more often just means that you'll see differences that aren't all from your tree, but some of them came from the *other* common point(s). For example, after doing the pull, I can then do: git merge-base --all HEAD^ HEAD^2 to see the merge bases of the merge in HEAD. In this case, because of your back-merge, there's two of them (with more complex history, there can be more still): f9fe1c12d126 rhashtable: Add rhashtable_lookup_get_insert_fast 69eea5a4ab9c Merge branch 'for-linus' of git://git.kernel.dk/linux-block and because "git diff" will just pick the first one, you will basically have done git diff f9fe1c12d126..FETCH_HEAD and if you then look at the *set* of changes (with "git log" of that range), you'll see why that diff also ends up containing those block changes (because they came on from that other merge base: commit 69eea5a4ab9c that had that linux-block merge). Now, doing a *merge* in git will take _all_ of those merge bases into account, and do something *much* more complicated than just a two-way diff. It will internally first create a single merge base (by recursively merging up all the other merge bases into a new internal commit), and then using that single merge base it will then do a normal three-way merge of the two branches. "git diff' doesn't do that kind of complicated operation, and although it *could* do that merge base recursive merging dance, the problem would be what to do about conflicts (which "git merge" obviously can also have, but with git merge you have that whole manual conflict resolution case). So once you have complex history that isn't just about merging your own local changes from other local branches, you'll start hitting this situation. Visualizing the history with "gitk" for those cases is often a great way to see why there's no single point that can be diffed against. But once you *do* have that kind of complex history, you're also expected to have the expertise to handle it: > So I created a temporary local branch and used git merge to > generate a correct diffstat. That's the correct thing to do. Hopefully the above explains *why* it's the correct thing to do. (Although to be honest, I also am pretty used to parsing the wrong diffs, and people sometimes just send me the garbage diffstat and say "I don't know what happened", and I'll figure it out and can still validate that the garbage diffstat they sent me is what I too get if I do just a silly "git diff" without taking merge bases into account). Linus
Re: GFS2: Pull request (merge window)
On Fri, May 5, 2017 at 1:28 PM, Bob Peterson wrote: > > I asked around, but nobody could tell me what went wrong. Strangely, > this command: > > git log --oneline --right-only origin/master...FETCH_HEAD --stat > > doesn't show this, but this one does: > > git diff --stat --right-only origin/master...FETCH_HEAD So the fundamental difference between "git log" and "git diff" is that one is a "ser operation" on the commits in question, and the other is fundamentally a "operation between two endpoints". And that's why "git log" will always show the "right" thing - because even in the presense of complex history, there's no ambiguity about which commits are part of the new set, and which are in the old set. So "git log" just does a set difference, and shows the commits in one set but not the other. But "git diff", because it is fundamentally about two particular points in history, can have a hard time once you have complex history: what are the two points? In particular, what "git diff origin/master...FETCH_HEAD" means is really: - find the common point (git calls it "merge base" because the common point is also used for merging) between the two commits (origin/master and FETCH_HEAD) - do the diff from that common point to the end result (FETCH_HEAD) and for linear history that is all very obvious and unambiguous. But once you have non-linear history, and particularly once you have back-merges (ie you're not just merging work that is uniquely your own from multiple of your *own* branches, but you're also doing merges of upstream code), the notion of that "common case" is no longer unambiguous. There is not necessarily any *one* common base, there can be multiple points in history that are common between the two branches, but are distinct points of history (ie one is not an ancestor of another). And since a diff is fundamentally about just two end-points ("what are the differences between these two points in the history"), "git diff" fundamentally cannot handle that case without help. So "git diff" will pick the first of the merge bases it finds, and just use that. Which even in the presense of more complex history will often work by luck, but more often just means that you'll see differences that aren't all from your tree, but some of them came from the *other* common point(s). For example, after doing the pull, I can then do: git merge-base --all HEAD^ HEAD^2 to see the merge bases of the merge in HEAD. In this case, because of your back-merge, there's two of them (with more complex history, there can be more still): f9fe1c12d126 rhashtable: Add rhashtable_lookup_get_insert_fast 69eea5a4ab9c Merge branch 'for-linus' of git://git.kernel.dk/linux-block and because "git diff" will just pick the first one, you will basically have done git diff f9fe1c12d126..FETCH_HEAD and if you then look at the *set* of changes (with "git log" of that range), you'll see why that diff also ends up containing those block changes (because they came on from that other merge base: commit 69eea5a4ab9c that had that linux-block merge). Now, doing a *merge* in git will take _all_ of those merge bases into account, and do something *much* more complicated than just a two-way diff. It will internally first create a single merge base (by recursively merging up all the other merge bases into a new internal commit), and then using that single merge base it will then do a normal three-way merge of the two branches. "git diff' doesn't do that kind of complicated operation, and although it *could* do that merge base recursive merging dance, the problem would be what to do about conflicts (which "git merge" obviously can also have, but with git merge you have that whole manual conflict resolution case). So once you have complex history that isn't just about merging your own local changes from other local branches, you'll start hitting this situation. Visualizing the history with "gitk" for those cases is often a great way to see why there's no single point that can be diffed against. But once you *do* have that kind of complex history, you're also expected to have the expertise to handle it: > So I created a temporary local branch and used git merge to > generate a correct diffstat. That's the correct thing to do. Hopefully the above explains *why* it's the correct thing to do. (Although to be honest, I also am pretty used to parsing the wrong diffs, and people sometimes just send me the garbage diffstat and say "I don't know what happened", and I'll figure it out and can still validate that the garbage diffstat they sent me is what I too get if I do just a silly "git diff" without taking merge bases into account). Linus
GFS2: Pull request (merge window)
Hi Linus, Please disregard my previous pull request and consider pulling the following changes for the GFS2 file system. Special note: This time we had an unusual dependency on a patch (f9fe1c12) which went through David Miller's net-next tree, so we have a merge commit in our GFS2 for-next branch. After you pulled that patch, I encountered a strange anomaly. Despite the fact that I did a git pull of master immediately prior, my pull request somehow generated an incorrect diffstat which showed phantom changes we did not make, for: block/bio.c | 12 +- block/blk-core.c| 30 ++- block/blk-mq-tag.c | 3 + block/blk-mq.c | 9 +- drivers/md/dm.c | 29 +- drivers/md/raid10.c | 3 +- fs/fs-writeback.c | 35 ++- I asked around, but nobody could tell me what went wrong. Strangely, this command: git log --oneline --right-only origin/master...FETCH_HEAD --stat doesn't show this, but this one does: git diff --stat --right-only origin/master...FETCH_HEAD So I created a temporary local branch and used git merge to generate a correct diffstat. Hopefully this pull will just work. If there are problems, let me know how to do it better for next time. (Next time we hopefully won't have any merge commits). Regards, Bob Peterson The following changes since commit f9fe1c12d126f9887441fa5bb165046f30ddd4b5: rhashtable: Add rhashtable_lookup_get_insert_fast (2017-03-21 17:52:45 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.12.fixes for you to fetch changes up to ed17545d01e4a40086f1622c88ce64cc0241cfc2: GFS2: Allow glocks to be unlocked after withdraw (2017-05-05 14:19:28 -0500) We've got ten GFS2 patches for this merge window (plus one merge commit). 1. Andreas Gruenbacher wrote a patch to replace the deprecated call to rhashtable_walk_init with rhashtable_walk_enter. 2. Andreas also wrote a patch to eliminate redundant code in two of our debugfs sequence files. 3. Andreas also cleaned up the rhashtable key ugliness Linus pointed out during this cycle, following Linus's suggestions. 4. Andreas also wrote a patch to take advantage of his new function rhashtable_lookup_get_insert_fast. This makes glock lookup faster and more bullet-proof. 5. Andreas also wrote a patch to revert a patch in the evict path that caused occasional deadlocks, and is no longer needed. 6. Andrew Price wrote a patch to re-enable fallocate for the rindex system file to enable gfs2_grow to grow properly on secondary file system grow operations. 7. I wrote a patch to initialize an inode number field to make certain kernel trace points more understandable. 8. I also wrote a patch that makes GFS2 file system "withdraw" work more like it should by ignoring operations after a withdraw that would formerly cause a BUG() and kernel panic. 9. I also reworked the entire truncate/delete algorithm, scrapping the old recursive algorithm in favor of a new non-recursive algorithm. This was done for performance: This way, GFS2 no longer needs to lock multiple resource groups while doing truncates and deletes of files that cross multiple resource group boundaries, allowing for better parallelism. It also solves a problem whereby deleting large files would request a large chunk of kernel memory, which resulted in a get_page_from_freelist warning. 10. Due to a regression found during testing, I added a new patch to correct "GFS2: Prevent BUG from occurring when normal Withdraws occur". Andreas Gruenbacher (5): gfs2: Replace rhashtable_walk_init with rhashtable_walk_enter gfs2: Deduplicate gfs2_{glocks,glstats}_open gfs2: Don't pack struct lm_lockname gfs2: Switch to rhashtable_lookup_get_insert_fast Revert "GFS2: Wait for iopen glock dequeues" Andrew Price (1): gfs2: Re-enable fallocate for the rindex Bob Peterson (5): GFS2: Prevent BUG from occurring when normal Withdraws occur GFS2: Temporarily zero i_no_addr when creating a dinode Merge commit 'f9fe1c1' into for-next GFS2: Non-recursive delete GFS2: Allow glocks to be unlocked after withdraw fs/gfs2/bmap.c | 741 +++ fs/gfs2/file.c | 6 +- fs/gfs2/glock.c | 81 - fs/gfs2/incore.h | 8 +- fs/gfs2/inode.c | 4 +- fs/gfs2/rgrp.c | 7 -- fs/gfs2/rgrp.h | 7 ++ fs/gfs2/super.c | 11 ++- 8 files changed, 518 insertions(+), 347 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please disregard my previous pull request and consider pulling the following changes for the GFS2 file system. Special note: This time we had an unusual dependency on a patch (f9fe1c12) which went through David Miller's net-next tree, so we have a merge commit in our GFS2 for-next branch. After you pulled that patch, I encountered a strange anomaly. Despite the fact that I did a git pull of master immediately prior, my pull request somehow generated an incorrect diffstat which showed phantom changes we did not make, for: block/bio.c | 12 +- block/blk-core.c| 30 ++- block/blk-mq-tag.c | 3 + block/blk-mq.c | 9 +- drivers/md/dm.c | 29 +- drivers/md/raid10.c | 3 +- fs/fs-writeback.c | 35 ++- I asked around, but nobody could tell me what went wrong. Strangely, this command: git log --oneline --right-only origin/master...FETCH_HEAD --stat doesn't show this, but this one does: git diff --stat --right-only origin/master...FETCH_HEAD So I created a temporary local branch and used git merge to generate a correct diffstat. Hopefully this pull will just work. If there are problems, let me know how to do it better for next time. (Next time we hopefully won't have any merge commits). Regards, Bob Peterson The following changes since commit f9fe1c12d126f9887441fa5bb165046f30ddd4b5: rhashtable: Add rhashtable_lookup_get_insert_fast (2017-03-21 17:52:45 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.12.fixes for you to fetch changes up to ed17545d01e4a40086f1622c88ce64cc0241cfc2: GFS2: Allow glocks to be unlocked after withdraw (2017-05-05 14:19:28 -0500) We've got ten GFS2 patches for this merge window (plus one merge commit). 1. Andreas Gruenbacher wrote a patch to replace the deprecated call to rhashtable_walk_init with rhashtable_walk_enter. 2. Andreas also wrote a patch to eliminate redundant code in two of our debugfs sequence files. 3. Andreas also cleaned up the rhashtable key ugliness Linus pointed out during this cycle, following Linus's suggestions. 4. Andreas also wrote a patch to take advantage of his new function rhashtable_lookup_get_insert_fast. This makes glock lookup faster and more bullet-proof. 5. Andreas also wrote a patch to revert a patch in the evict path that caused occasional deadlocks, and is no longer needed. 6. Andrew Price wrote a patch to re-enable fallocate for the rindex system file to enable gfs2_grow to grow properly on secondary file system grow operations. 7. I wrote a patch to initialize an inode number field to make certain kernel trace points more understandable. 8. I also wrote a patch that makes GFS2 file system "withdraw" work more like it should by ignoring operations after a withdraw that would formerly cause a BUG() and kernel panic. 9. I also reworked the entire truncate/delete algorithm, scrapping the old recursive algorithm in favor of a new non-recursive algorithm. This was done for performance: This way, GFS2 no longer needs to lock multiple resource groups while doing truncates and deletes of files that cross multiple resource group boundaries, allowing for better parallelism. It also solves a problem whereby deleting large files would request a large chunk of kernel memory, which resulted in a get_page_from_freelist warning. 10. Due to a regression found during testing, I added a new patch to correct "GFS2: Prevent BUG from occurring when normal Withdraws occur". Andreas Gruenbacher (5): gfs2: Replace rhashtable_walk_init with rhashtable_walk_enter gfs2: Deduplicate gfs2_{glocks,glstats}_open gfs2: Don't pack struct lm_lockname gfs2: Switch to rhashtable_lookup_get_insert_fast Revert "GFS2: Wait for iopen glock dequeues" Andrew Price (1): gfs2: Re-enable fallocate for the rindex Bob Peterson (5): GFS2: Prevent BUG from occurring when normal Withdraws occur GFS2: Temporarily zero i_no_addr when creating a dinode Merge commit 'f9fe1c1' into for-next GFS2: Non-recursive delete GFS2: Allow glocks to be unlocked after withdraw fs/gfs2/bmap.c | 741 +++ fs/gfs2/file.c | 6 +- fs/gfs2/glock.c | 81 - fs/gfs2/incore.h | 8 +- fs/gfs2/inode.c | 4 +- fs/gfs2/rgrp.c | 7 -- fs/gfs2/rgrp.h | 7 ++ fs/gfs2/super.c | 11 ++- 8 files changed, 518 insertions(+), 347 deletions(-)
Regression in my latest GFS2 pull request
Hi Linus, I see that you haven't processed my latest GFS2 pull request. Today I found a regression in one of those patches. I've written, tested, and posted a patch to cluster-devel to fix the problem, and I'd like to get it into this merge window because it's severe. (You can't unmount a gfs2 file system after withdraw due to errors). My question is: How would you like me to handle it? Push the new patch, tag it, and do a second pull request? Wait until you've processed the first pull request, then do so? Or is there a better way? Regards, Bob Peterson
Regression in my latest GFS2 pull request
Hi Linus, I see that you haven't processed my latest GFS2 pull request. Today I found a regression in one of those patches. I've written, tested, and posted a patch to cluster-devel to fix the problem, and I'd like to get it into this merge window because it's severe. (You can't unmount a gfs2 file system after withdraw due to errors). My question is: How would you like me to handle it? Push the new patch, tag it, and do a second pull request? Wait until you've processed the first pull request, then do so? Or is there a better way? Regards, Bob Peterson
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Special note: This time we had an unusual dependency on a patch (f9fe1c12) which went through David Miller's net-next tree, so we had a merge commit on our GFS2 for-next branch. After you pulled that patch, I encountered a strange git anomaly. Despite the fact that I did a git pull of master immediately prior, my pull request somehow generated an incorrect diffstat which showed phantom changes we did not make, for: block/bio.c | 12 +- block/blk-core.c| 30 ++- block/blk-mq-tag.c | 3 + block/blk-mq.c | 9 +- drivers/md/dm.c | 29 +- drivers/md/raid10.c | 3 +- fs/fs-writeback.c | 35 ++- I asked around, but nobody could tell me what went wrong. Strangely, this command: git log --oneline --right-only origin/master...FETCH_HEAD --stat didn't show it, but this one did: git diff --stat --right-only origin/master...FETCH_HEAD So I created a temporary local branch and used git merge to generate a correct diffstat. Hopefully this pull will just work. If there are problems, let me know if I should do this a different way next time. (Next time we hopefully won't have any merge commits). Regards, Bob Peterson The following changes since commit f9fe1c12d126f9887441fa5bb165046f30ddd4b5: rhashtable: Add rhashtable_lookup_get_insert_fast (2017-03-21 17:52:45 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.12.fixes for you to fetch changes up to d552a2b9b33eafdb5eb16c643e745deb564dda7f: GFS2: Non-recursive delete (2017-04-19 08:25:43 -0400) We've got nine GFS2 patches for this merge window. 1. Andreas Gruenbacher wrote a patch to replace the deprecated call to rhashtable_walk_init with rhashtable_walk_enter. 2. Andreas also wrote a patch to eliminate redundant code in two of our debugfs sequence files. 3. Andreas also cleaned up the rhashtable key ugliness Linus pointed out during this cycle, following Linus's suggestions. 4. Andreas also wrote a patch to take advantage of his new function rhashtable_lookup_get_insert_fast. This makes glock lookup faster and more bullet-proof. 5. Andreas also wrote a patch to revert a patch in the evict path that caused occasional deadlocks, and is no longer needed. 6. Andrew Price wrote a patch to re-enable fallocate for the rindex system file to enable gfs2_grow to grow properly on secondary file system grow operations. 7. I wrote a patch to initialize an inode number field to make certain kernel trace points more understandable. 8. I also wrote a patch that makes GFS2 file system "withdraw" work more like it should by ignoring operations after a withdraw that would formerly cause a BUG() and kernel panic. 9. I also reworked the entire truncate/delete algorithm, scrapping the old recursive algorithm in favor of a new non-recursive algorithm. This was done for performance: This way, GFS2 no longer needs to lock multiple resource groups while doing truncates and deletes of files that cross multiple resource group boundaries, allowing for better parallelism. It also solves a problem whereby deleting large files would request a large chunk of kernel memory, which resulted in a get_page_from_freelist warning. Andreas Gruenbacher (5): gfs2: Replace rhashtable_walk_init with rhashtable_walk_enter gfs2: Deduplicate gfs2_{glocks,glstats}_open gfs2: Don't pack struct lm_lockname gfs2: Switch to rhashtable_lookup_get_insert_fast Revert "GFS2: Wait for iopen glock dequeues" Andrew Price (1): gfs2: Re-enable fallocate for the rindex Bob Peterson (4): GFS2: Prevent BUG from occurring when normal Withdraws occur GFS2: Temporarily zero i_no_addr when creating a dinode Merge commit 'f9fe1c1' into for-next GFS2: Non-recursive delete fs/gfs2/bmap.c | 741 fs/gfs2/file.c | 6 +- fs/gfs2/glock.c | 77 +++--- fs/gfs2/incore.h| 8 +- fs/gfs2/inode.c | 4 +- fs/gfs2/rgrp.c | 7 - fs/gfs2/rgrp.h | 7 + fs/gfs2/super.c | 11 +- 8 files changed, 515 insertions(+), 346 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Special note: This time we had an unusual dependency on a patch (f9fe1c12) which went through David Miller's net-next tree, so we had a merge commit on our GFS2 for-next branch. After you pulled that patch, I encountered a strange git anomaly. Despite the fact that I did a git pull of master immediately prior, my pull request somehow generated an incorrect diffstat which showed phantom changes we did not make, for: block/bio.c | 12 +- block/blk-core.c| 30 ++- block/blk-mq-tag.c | 3 + block/blk-mq.c | 9 +- drivers/md/dm.c | 29 +- drivers/md/raid10.c | 3 +- fs/fs-writeback.c | 35 ++- I asked around, but nobody could tell me what went wrong. Strangely, this command: git log --oneline --right-only origin/master...FETCH_HEAD --stat didn't show it, but this one did: git diff --stat --right-only origin/master...FETCH_HEAD So I created a temporary local branch and used git merge to generate a correct diffstat. Hopefully this pull will just work. If there are problems, let me know if I should do this a different way next time. (Next time we hopefully won't have any merge commits). Regards, Bob Peterson The following changes since commit f9fe1c12d126f9887441fa5bb165046f30ddd4b5: rhashtable: Add rhashtable_lookup_get_insert_fast (2017-03-21 17:52:45 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.12.fixes for you to fetch changes up to d552a2b9b33eafdb5eb16c643e745deb564dda7f: GFS2: Non-recursive delete (2017-04-19 08:25:43 -0400) We've got nine GFS2 patches for this merge window. 1. Andreas Gruenbacher wrote a patch to replace the deprecated call to rhashtable_walk_init with rhashtable_walk_enter. 2. Andreas also wrote a patch to eliminate redundant code in two of our debugfs sequence files. 3. Andreas also cleaned up the rhashtable key ugliness Linus pointed out during this cycle, following Linus's suggestions. 4. Andreas also wrote a patch to take advantage of his new function rhashtable_lookup_get_insert_fast. This makes glock lookup faster and more bullet-proof. 5. Andreas also wrote a patch to revert a patch in the evict path that caused occasional deadlocks, and is no longer needed. 6. Andrew Price wrote a patch to re-enable fallocate for the rindex system file to enable gfs2_grow to grow properly on secondary file system grow operations. 7. I wrote a patch to initialize an inode number field to make certain kernel trace points more understandable. 8. I also wrote a patch that makes GFS2 file system "withdraw" work more like it should by ignoring operations after a withdraw that would formerly cause a BUG() and kernel panic. 9. I also reworked the entire truncate/delete algorithm, scrapping the old recursive algorithm in favor of a new non-recursive algorithm. This was done for performance: This way, GFS2 no longer needs to lock multiple resource groups while doing truncates and deletes of files that cross multiple resource group boundaries, allowing for better parallelism. It also solves a problem whereby deleting large files would request a large chunk of kernel memory, which resulted in a get_page_from_freelist warning. Andreas Gruenbacher (5): gfs2: Replace rhashtable_walk_init with rhashtable_walk_enter gfs2: Deduplicate gfs2_{glocks,glstats}_open gfs2: Don't pack struct lm_lockname gfs2: Switch to rhashtable_lookup_get_insert_fast Revert "GFS2: Wait for iopen glock dequeues" Andrew Price (1): gfs2: Re-enable fallocate for the rindex Bob Peterson (4): GFS2: Prevent BUG from occurring when normal Withdraws occur GFS2: Temporarily zero i_no_addr when creating a dinode Merge commit 'f9fe1c1' into for-next GFS2: Non-recursive delete fs/gfs2/bmap.c | 741 fs/gfs2/file.c | 6 +- fs/gfs2/glock.c | 77 +++--- fs/gfs2/incore.h| 8 +- fs/gfs2/inode.c | 4 +- fs/gfs2/rgrp.c | 7 - fs/gfs2/rgrp.h | 7 + fs/gfs2/super.c | 11 +- 8 files changed, 515 insertions(+), 346 deletions(-)
Re: GFS2: pull request for high-priority bug
- Original Message - | On Wed, Mar 15, 2017 at 7:32 AM, Bob Petersonwrote: | > | > Andreas Gruenbacher (1): | > gfs2: Avoid alignment hole in struct lm_lockname | | So I've pulled this because I think it fixes a real bug, but honestly | I think it's the wrong fix. | | Marking that lm_lockname structure "packed, aligned(4)" means that the | compiler will now think that the 64-bit fields in it may be unaligned | - including on architectures where that can be very expensive and the | compiler now might generate stupid unaligned instruction sequences to | load those values. | | So the *correct* fix, I think, would have been: | | - add a comment about not having holes in the struct due to the hashing | | - sort the fields by size (so "ln_number" first, then "ln_sbd", then | "ln_type") | | - use offsetofend(struct lm_lockname, ln_type) instead of sizeof() when | hashing | | which avoids the "possibly generate garbage code" issue due to the | quick-and-dirty one-liner approach. | | Hmm? | | Linus Hi Linus, Thanks. Yes, good ideas. I see your point and I'll see if we can get that fixed up for the next merge window. Bob Peterson
Re: GFS2: pull request for high-priority bug
- Original Message - | On Wed, Mar 15, 2017 at 7:32 AM, Bob Peterson wrote: | > | > Andreas Gruenbacher (1): | > gfs2: Avoid alignment hole in struct lm_lockname | | So I've pulled this because I think it fixes a real bug, but honestly | I think it's the wrong fix. | | Marking that lm_lockname structure "packed, aligned(4)" means that the | compiler will now think that the 64-bit fields in it may be unaligned | - including on architectures where that can be very expensive and the | compiler now might generate stupid unaligned instruction sequences to | load those values. | | So the *correct* fix, I think, would have been: | | - add a comment about not having holes in the struct due to the hashing | | - sort the fields by size (so "ln_number" first, then "ln_sbd", then | "ln_type") | | - use offsetofend(struct lm_lockname, ln_type) instead of sizeof() when | hashing | | which avoids the "possibly generate garbage code" issue due to the | quick-and-dirty one-liner approach. | | Hmm? | | Linus Hi Linus, Thanks. Yes, good ideas. I see your point and I'll see if we can get that fixed up for the next merge window. Bob Peterson
Re: GFS2: pull request for high-priority bug
On Wed, Mar 15, 2017 at 7:32 AM, Bob Petersonwrote: > > Andreas Gruenbacher (1): > gfs2: Avoid alignment hole in struct lm_lockname So I've pulled this because I think it fixes a real bug, but honestly I think it's the wrong fix. Marking that lm_lockname structure "packed, aligned(4)" means that the compiler will now think that the 64-bit fields in it may be unaligned - including on architectures where that can be very expensive and the compiler now might generate stupid unaligned instruction sequences to load those values. So the *correct* fix, I think, would have been: - add a comment about not having holes in the struct due to the hashing - sort the fields by size (so "ln_number" first, then "ln_sbd", then "ln_type") - use offsetofend(struct lm_lockname, ln_type) instead of sizeof() when hashing which avoids the "possibly generate garbage code" issue due to the quick-and-dirty one-liner approach. Hmm? Linus
Re: GFS2: pull request for high-priority bug
On Wed, Mar 15, 2017 at 7:32 AM, Bob Peterson wrote: > > Andreas Gruenbacher (1): > gfs2: Avoid alignment hole in struct lm_lockname So I've pulled this because I think it fixes a real bug, but honestly I think it's the wrong fix. Marking that lm_lockname structure "packed, aligned(4)" means that the compiler will now think that the 64-bit fields in it may be unaligned - including on architectures where that can be very expensive and the compiler now might generate stupid unaligned instruction sequences to load those values. So the *correct* fix, I think, would have been: - add a comment about not having holes in the struct due to the hashing - sort the fields by size (so "ln_number" first, then "ln_sbd", then "ln_type") - use offsetofend(struct lm_lockname, ln_type) instead of sizeof() when hashing which avoids the "possibly generate garbage code" issue due to the quick-and-dirty one-liner approach. Hmm? Linus
GFS2: pull request for high-priority bug
Hi Linus, Please consider pulling the following additional patch for the GFS2 file system. Regards, Bob Peterson The following changes since commit ae50dfd61665086e617cc9e554a1285d52765670: Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2017-03-14 21:31:23 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.11-rc3.fixes for you to fetch changes up to 28ea06c46fbcab63fd9a55531387b7928a18a590: gfs2: Avoid alignment hole in struct lm_lockname (2017-03-15 10:06:07 -0400) This is an emergency patch for 4.11-rc3 The GFS2 developers uncovered a really nasty problem that can lead to random corruption and kernel panic, much like the last one. Andreas Gruenbacher wrote this simple one-line patch to fix the problem: 28ea06c gfs2: Avoid alignment hole in struct lm_lockname Andreas Gruenbacher (1): gfs2: Avoid alignment hole in struct lm_lockname fs/gfs2/incore.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
GFS2: pull request for high-priority bug
Hi Linus, Please consider pulling the following additional patch for the GFS2 file system. Regards, Bob Peterson The following changes since commit ae50dfd61665086e617cc9e554a1285d52765670: Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2017-03-14 21:31:23 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.11-rc3.fixes for you to fetch changes up to 28ea06c46fbcab63fd9a55531387b7928a18a590: gfs2: Avoid alignment hole in struct lm_lockname (2017-03-15 10:06:07 -0400) This is an emergency patch for 4.11-rc3 The GFS2 developers uncovered a really nasty problem that can lead to random corruption and kernel panic, much like the last one. Andreas Gruenbacher wrote this simple one-line patch to fix the problem: 28ea06c gfs2: Avoid alignment hole in struct lm_lockname Andreas Gruenbacher (1): gfs2: Avoid alignment hole in struct lm_lockname fs/gfs2/incore.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
GFS2: Pull request (merge window) addendum
Hi Linus, Please consider pulling the following additional patch for the GFS2 file system. Sorry for the lack of bake time on this one, but it is high priority, simple, and has been well tested. Bob Peterson The following changes since commit c548a1c175608e268f6495f3f82461303584d1c9: gfs2: Make gfs2_write_full_page static (2017-02-03 08:23:47 -0500) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.11.addendum for you to fetch changes up to f38e5fb95a1f8feda88531eedc98f69b24748712: gfs2: Add missing rcu locking for glock lookup (2017-02-23 10:06:00 -0500) This is an addendum for the 4.11 merge window. Andy Price wrote this patch to close a nasty race condition that allows access to glocks that are being destroyed. Without this patch, GFS2 is vulnerable to random corruption and kernel panic. Andrew Price (1): gfs2: Add missing rcu locking for glock lookup fs/gfs2/glock.c | 5 + 1 file changed, 5 insertions(+)
GFS2: Pull request (merge window) addendum
Hi Linus, Please consider pulling the following additional patch for the GFS2 file system. Sorry for the lack of bake time on this one, but it is high priority, simple, and has been well tested. Bob Peterson The following changes since commit c548a1c175608e268f6495f3f82461303584d1c9: gfs2: Make gfs2_write_full_page static (2017-02-03 08:23:47 -0500) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.11.addendum for you to fetch changes up to f38e5fb95a1f8feda88531eedc98f69b24748712: gfs2: Add missing rcu locking for glock lookup (2017-02-23 10:06:00 -0500) This is an addendum for the 4.11 merge window. Andy Price wrote this patch to close a nasty race condition that allows access to glocks that are being destroyed. Without this patch, GFS2 is vulnerable to random corruption and kernel panic. Andrew Price (1): gfs2: Add missing rcu locking for glock lookup fs/gfs2/glock.c | 5 + 1 file changed, 5 insertions(+)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Bob Peterson The following changes since commit a3443cda5588985a2724d6d0f4a5f04e625be6eb: Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security (2016-10-04 14:48:27 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.11.fixes for you to fetch changes up to c548a1c175608e268f6495f3f82461303584d1c9: gfs2: Make gfs2_write_full_page static (2017-02-03 08:23:47 -0500) We've got eight GFS2 patches for this merge window: 1. Andy Price submitted a patch to make gfs2_write_full_page a static function. 2. Dan Carpenter submitted a patch to fix a ERR_PTR thinko. I've also got a few patches, three of which fix bugs related to deleting very large files, which cause GFS2 to run out of journal space: 3. The first one prevents GFS2 delete operation from requesting too much journal space. 4. The second one fixes a problem whereby GFS2 can hang because it wasn't taking journal space demand into its calculations. 5. The third one wakes up IO waiters when a flush is done to restart processes stuck waiting for journal space to become available. The other three patches are a performance improvement related to spin_lock contention between multiple writers: 6. The "tr_touched" variable was switched to a flag to be more atomic and eliminate the possibility of some races. 7. Function meta_lo_add was moved inline with its only caller to make the code more readable and efficient. 8. Contention on the gfs2_log_lock spinlock was greatly reduced by avoiding the lock altogether in cases where we don't really need it: buffers that already appear in the appropriate metadata list for the journal. Many thanks to Steve Whitehouse for the ideas and principles behind these patches. Andrew Price (1): gfs2: Make gfs2_write_full_page static Bob Peterson (6): GFS2: Limit number of transaction blocks requested for truncates GFS2: Made logd daemon take into account log demand GFS2: Wake up io waiters whenever a flush is done GFS2: Switch tr_touched to flag in transaction GFS2: Inline function meta_lo_add GFS2: Reduce contention on gfs2_log_lock Dan Carpenter (1): GFS2: Fix reference to ERR_PTR in gfs2_glock_iter_next fs/gfs2/aops.c | 4 +-- fs/gfs2/bmap.c | 29 +-- fs/gfs2/glock.c | 12 fs/gfs2/incore.h | 11 +-- fs/gfs2/log.c| 21 ++ fs/gfs2/meta_io.c| 6 ++-- fs/gfs2/ops_fstype.c | 1 + fs/gfs2/trans.c | 81 8 files changed, 105 insertions(+), 60 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Bob Peterson The following changes since commit a3443cda5588985a2724d6d0f4a5f04e625be6eb: Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security (2016-10-04 14:48:27 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.11.fixes for you to fetch changes up to c548a1c175608e268f6495f3f82461303584d1c9: gfs2: Make gfs2_write_full_page static (2017-02-03 08:23:47 -0500) We've got eight GFS2 patches for this merge window: 1. Andy Price submitted a patch to make gfs2_write_full_page a static function. 2. Dan Carpenter submitted a patch to fix a ERR_PTR thinko. I've also got a few patches, three of which fix bugs related to deleting very large files, which cause GFS2 to run out of journal space: 3. The first one prevents GFS2 delete operation from requesting too much journal space. 4. The second one fixes a problem whereby GFS2 can hang because it wasn't taking journal space demand into its calculations. 5. The third one wakes up IO waiters when a flush is done to restart processes stuck waiting for journal space to become available. The other three patches are a performance improvement related to spin_lock contention between multiple writers: 6. The "tr_touched" variable was switched to a flag to be more atomic and eliminate the possibility of some races. 7. Function meta_lo_add was moved inline with its only caller to make the code more readable and efficient. 8. Contention on the gfs2_log_lock spinlock was greatly reduced by avoiding the lock altogether in cases where we don't really need it: buffers that already appear in the appropriate metadata list for the journal. Many thanks to Steve Whitehouse for the ideas and principles behind these patches. Andrew Price (1): gfs2: Make gfs2_write_full_page static Bob Peterson (6): GFS2: Limit number of transaction blocks requested for truncates GFS2: Made logd daemon take into account log demand GFS2: Wake up io waiters whenever a flush is done GFS2: Switch tr_touched to flag in transaction GFS2: Inline function meta_lo_add GFS2: Reduce contention on gfs2_log_lock Dan Carpenter (1): GFS2: Fix reference to ERR_PTR in gfs2_glock_iter_next fs/gfs2/aops.c | 4 +-- fs/gfs2/bmap.c | 29 +-- fs/gfs2/glock.c | 12 fs/gfs2/incore.h | 11 +-- fs/gfs2/log.c| 21 ++ fs/gfs2/meta_io.c| 6 ++-- fs/gfs2/ops_fstype.c | 1 + fs/gfs2/trans.c | 81 8 files changed, 105 insertions(+), 60 deletions(-)
GFS2: Pull request (merge window)
(Resending to lkml (only) because my cc was malformed) Hi Linus, Please consider pulling the following changes for the GFS2 file system. Bob Peterson The following changes since commit 731c7d3a205ba89b475b2aa71b5f13dd6ae3de56: Merge tag 'drm-for-v4.8' of git://people.freedesktop.org/~airlied/linux (2016-08-01 21:44:08 -0400) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.8.fixes for you to fetch changes up to 332f51d7db13ffb7fcbe2407ed5b3667bc3750a7: gfs2: Initialize atime of I_NEW inodes (2016-09-26 13:24:34 -0500) We've only got six GFS2 patches for this merge window. In patch order: 1. Fabian Frederick submitted a nice cleanup that uses the BIT macro rather than bit shifting. 2. Andreas Gruenbacher contributed a patch that fixes a long-standing annoyance whereby GFS2 warned about dirty pages. 3. Andreas also fixed a problem with the recent extended attribute readahead feature. 4. Chao Yu contributed a patch that checks the return code from function register_shrinker and reacts accordingly. Previously, it was not checked. 5. Andreas Gruenbacher also fixed a problem whereby incore file timestamps were forgotten if the file was invalidated. This merely moves the assignment inside the inode glock where it belongs. 6. He also fixed a problem where incore timestamps were not initialized. Andreas Gruenbacher (4): gfs2: Remove dirty buffer warning from gfs2_releasepage gfs2: Fix extended attribute readahead optimization gfs2: Update file times after grabbing glock gfs2: Initialize atime of I_NEW inodes Chao Yu (1): gfs2: fix to detect failure of register_shrinker Fabian Frederick (1): GFS2: use BIT() macro fs/gfs2/aops.c | 19 +-- fs/gfs2/bmap.c | 6 +++--- fs/gfs2/dir.c| 20 ++-- fs/gfs2/file.c | 6 +++--- fs/gfs2/glock.c | 10 -- fs/gfs2/inode.c | 4 fs/gfs2/inode.h | 2 +- fs/gfs2/main.c | 4 +++- fs/gfs2/meta_io.c| 35 +++ fs/gfs2/ops_fstype.c | 8 fs/gfs2/quota.c | 4 ++-- fs/gfs2/super.c | 2 +- 12 files changed, 71 insertions(+), 49 deletions(-)
GFS2: Pull request (merge window)
(Resending to lkml (only) because my cc was malformed) Hi Linus, Please consider pulling the following changes for the GFS2 file system. Bob Peterson The following changes since commit 731c7d3a205ba89b475b2aa71b5f13dd6ae3de56: Merge tag 'drm-for-v4.8' of git://people.freedesktop.org/~airlied/linux (2016-08-01 21:44:08 -0400) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.8.fixes for you to fetch changes up to 332f51d7db13ffb7fcbe2407ed5b3667bc3750a7: gfs2: Initialize atime of I_NEW inodes (2016-09-26 13:24:34 -0500) We've only got six GFS2 patches for this merge window. In patch order: 1. Fabian Frederick submitted a nice cleanup that uses the BIT macro rather than bit shifting. 2. Andreas Gruenbacher contributed a patch that fixes a long-standing annoyance whereby GFS2 warned about dirty pages. 3. Andreas also fixed a problem with the recent extended attribute readahead feature. 4. Chao Yu contributed a patch that checks the return code from function register_shrinker and reacts accordingly. Previously, it was not checked. 5. Andreas Gruenbacher also fixed a problem whereby incore file timestamps were forgotten if the file was invalidated. This merely moves the assignment inside the inode glock where it belongs. 6. He also fixed a problem where incore timestamps were not initialized. Andreas Gruenbacher (4): gfs2: Remove dirty buffer warning from gfs2_releasepage gfs2: Fix extended attribute readahead optimization gfs2: Update file times after grabbing glock gfs2: Initialize atime of I_NEW inodes Chao Yu (1): gfs2: fix to detect failure of register_shrinker Fabian Frederick (1): GFS2: use BIT() macro fs/gfs2/aops.c | 19 +-- fs/gfs2/bmap.c | 6 +++--- fs/gfs2/dir.c| 20 ++-- fs/gfs2/file.c | 6 +++--- fs/gfs2/glock.c | 10 -- fs/gfs2/inode.c | 4 fs/gfs2/inode.h | 2 +- fs/gfs2/main.c | 4 +++- fs/gfs2/meta_io.c| 35 +++ fs/gfs2/ops_fstype.c | 8 fs/gfs2/quota.c | 4 ++-- fs/gfs2/super.c | 2 +- 12 files changed, 71 insertions(+), 49 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Since I'll be on vacation / holiday all next week, I'm doing the merge window processing for GFS2 early this time, before the merge window has been officially opened: I'd rather post the patches a little early than delay it until I return, then be late and have you be unhappy with me as a maintainer. Also, I apologize that the last patch, "GFS2: Fix gfs2_replay_incr_blk for multiple journal sizes" hasn't had much bake time. The patch is straightforward, reviewed, and well tested with a reliable recreation scenario. Since the bug prevents users from mounting their GFS2 file system, I wanted to get it in as soon as possible. I felt that the need outweighed other concerns. Since I'll be on vacation next week, Andreas Gruenbacher can make changes to the linux-gfs2 repo if need be. Bob Peterson The following changes since commit 29567292c0b5b2fb484125c280a2175141fe2205: Merge tag 'for-linus-4.7-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip (2016-05-24 10:22:34 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.7.fixes for you to fetch changes up to e1cb6be9e142e6cc6246f3ab2776b4d7a2b3d9f0: GFS2: Fix gfs2_replay_incr_blk for multiple journal sizes (2016-07-21 13:02:44 -0500) We've got ten patches this time, half of which are related to a plethora of nasty outcomes when inodes are transitioned from the unlinked state to the free state. Small file systems are particularly vulnerable to these problems, and it can manifest as mainly hangs, but also file system corruption. The patches have been tested for literally many weeks, with a very gruelling test, so I have a high level of confidence. - Andreas Gruenbacher wrote a series of 5 patches for various lockups during the transition of inodes from unlinked to free. The main patch is titled "Fix gfs2_lookup_by_inum lock inversion" and the other 4 are support and cleanup patches related to that. - Ben Marzinski contributed 2 patches with regard to a recreatable problem when gfs2 tries to write a page to a file that is being truncated, resulting in a BUG() in gfs2_remove_from_journal. Note that Ben had to export vfs function __block_write_full_page to get this to work properly. It's been posted a long time and he talked to various VFS people about it, and nobody seemed to mind. - I contributed 3 patches. (1) The first one fixes a memory corruptor: a race in which one process can overwrite the gl_object pointer set by another process, causing kernel panic and other symptoms. (2) The second patch fixes another race that resulted in a false-positive BUG_ON. This occurred when resource group reservations were freed by one process while another process was trying to grab a new reservation in the same resource group. (3) The third patch fixes a problem with doing journal replay when the journals are not all the same size. Andreas Gruenbacher (5): gfs2: Initialize iopen glock holder for new inodes gfs2: Fix gfs2_lookup_by_inum lock inversion gfs2: Get rid of gfs2_ilookup gfs2: Large-filesystem fix for 32-bit systems gfs2: Lock holder cleanup Benjamin Marzinski (2): fs: export __block_write_full_page gfs2: writeout truncated pages Bob Peterson (3): GFS2: don't set rgrp gl_object until it's inserted into rgrp tree GFS2: Check rs_free with rd_rsspin protection GFS2: Fix gfs2_replay_incr_blk for multiple journal sizes fs/buffer.c | 3 +- fs/gfs2/aops.c | 49 +++-- fs/gfs2/dentry.c| 2 +- fs/gfs2/dir.c | 3 +- fs/gfs2/export.c| 11 fs/gfs2/file.c | 2 +- fs/gfs2/glock.c | 11 +--- fs/gfs2/glock.h | 10 fs/gfs2/inode.c | 128 +--- fs/gfs2/inode.h | 4 +- fs/gfs2/lops.c | 11 ++-- fs/gfs2/main.c | 1 + fs/gfs2/ops_fstype.c| 3 +- fs/gfs2/quota.c | 2 +- fs/gfs2/recovery.c | 6 +-- fs/gfs2/recovery.h | 4 +- fs/gfs2/rgrp.c | 21 fs/gfs2/super.c | 24 + include/linux/buffer_head.h | 3 ++ 19 files changed, 182 insertions(+), 116 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. Since I'll be on vacation / holiday all next week, I'm doing the merge window processing for GFS2 early this time, before the merge window has been officially opened: I'd rather post the patches a little early than delay it until I return, then be late and have you be unhappy with me as a maintainer. Also, I apologize that the last patch, "GFS2: Fix gfs2_replay_incr_blk for multiple journal sizes" hasn't had much bake time. The patch is straightforward, reviewed, and well tested with a reliable recreation scenario. Since the bug prevents users from mounting their GFS2 file system, I wanted to get it in as soon as possible. I felt that the need outweighed other concerns. Since I'll be on vacation next week, Andreas Gruenbacher can make changes to the linux-gfs2 repo if need be. Bob Peterson The following changes since commit 29567292c0b5b2fb484125c280a2175141fe2205: Merge tag 'for-linus-4.7-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip (2016-05-24 10:22:34 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.7.fixes for you to fetch changes up to e1cb6be9e142e6cc6246f3ab2776b4d7a2b3d9f0: GFS2: Fix gfs2_replay_incr_blk for multiple journal sizes (2016-07-21 13:02:44 -0500) We've got ten patches this time, half of which are related to a plethora of nasty outcomes when inodes are transitioned from the unlinked state to the free state. Small file systems are particularly vulnerable to these problems, and it can manifest as mainly hangs, but also file system corruption. The patches have been tested for literally many weeks, with a very gruelling test, so I have a high level of confidence. - Andreas Gruenbacher wrote a series of 5 patches for various lockups during the transition of inodes from unlinked to free. The main patch is titled "Fix gfs2_lookup_by_inum lock inversion" and the other 4 are support and cleanup patches related to that. - Ben Marzinski contributed 2 patches with regard to a recreatable problem when gfs2 tries to write a page to a file that is being truncated, resulting in a BUG() in gfs2_remove_from_journal. Note that Ben had to export vfs function __block_write_full_page to get this to work properly. It's been posted a long time and he talked to various VFS people about it, and nobody seemed to mind. - I contributed 3 patches. (1) The first one fixes a memory corruptor: a race in which one process can overwrite the gl_object pointer set by another process, causing kernel panic and other symptoms. (2) The second patch fixes another race that resulted in a false-positive BUG_ON. This occurred when resource group reservations were freed by one process while another process was trying to grab a new reservation in the same resource group. (3) The third patch fixes a problem with doing journal replay when the journals are not all the same size. Andreas Gruenbacher (5): gfs2: Initialize iopen glock holder for new inodes gfs2: Fix gfs2_lookup_by_inum lock inversion gfs2: Get rid of gfs2_ilookup gfs2: Large-filesystem fix for 32-bit systems gfs2: Lock holder cleanup Benjamin Marzinski (2): fs: export __block_write_full_page gfs2: writeout truncated pages Bob Peterson (3): GFS2: don't set rgrp gl_object until it's inserted into rgrp tree GFS2: Check rs_free with rd_rsspin protection GFS2: Fix gfs2_replay_incr_blk for multiple journal sizes fs/buffer.c | 3 +- fs/gfs2/aops.c | 49 +++-- fs/gfs2/dentry.c| 2 +- fs/gfs2/dir.c | 3 +- fs/gfs2/export.c| 11 fs/gfs2/file.c | 2 +- fs/gfs2/glock.c | 11 +--- fs/gfs2/glock.h | 10 fs/gfs2/inode.c | 128 +--- fs/gfs2/inode.h | 4 +- fs/gfs2/lops.c | 11 ++-- fs/gfs2/main.c | 1 + fs/gfs2/ops_fstype.c| 3 +- fs/gfs2/quota.c | 2 +- fs/gfs2/recovery.c | 6 +-- fs/gfs2/recovery.h | 4 +- fs/gfs2/rgrp.c | 21 fs/gfs2/super.c | 24 + include/linux/buffer_head.h | 3 ++ 19 files changed, 182 insertions(+), 116 deletions(-)
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes for the GFS2 file system. Bob Peterson The following changes since commit 9dffdb38d864ae89e16ff7b3a09451270736e35b: Merge tag 'staging-4.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging (2016-03-17 22:13:41 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.7.fixes for you to fetch changes up to 68cd4ce2caf22a81833eb1abfa075eb1cc39bfe2: GFS2: Refactor gfs2_remove_from_journal (2016-05-06 11:27:27 -0500) GFS2: merge window We've got nine patches this time: - Abhi Das has two patches that fix a GFS2 splice issue (and an adjustment). - Ben Marzinski has a patch which allows the proper unmount of a GFS2 file system after hitting a withdraw error. - I have a patch to fix a problem where GFS2 would dereference an error value, plus three cosmetic / refactoring patches. - Daniel DeFreez has a patch to fix two glock reference count problems, where GFS2 was not properly "uninitializing" its glock holder on error paths. - Denys Vlasenko has a patch to change a function to not be inlined, thus reducing the memory footprint of the GFS2 module. Abhi Das (2): gfs2: Use gfs2 wrapper to sync inode before calling generic_file_splice_read() gfs2: use inode_lock/unlock instead of accessing i_mutex directly Benjamin Marzinski (1): GFS2: ignore unlock failures after withdraw Bob Peterson (4): GFS2: Get rid of dead code in inode_go_demote_ok GFS2: Don't dereference inode in gfs2_inode_lookup until it's valid GFS2: Remove allocation parms from gfs2_rbm_find GFS2: Refactor gfs2_remove_from_journal Daniel DeFreez (1): GFS2: Add calls to gfs2_holder_uninit in two error handlers Denys Vlasenko (1): GFS2: fs/gfs2/glock.c: Deinline do_error, save 1856 bytes fs/gfs2/aops.c| 5 +++-- fs/gfs2/file.c| 31 --- fs/gfs2/glock.c | 11 +-- fs/gfs2/glops.c | 7 --- fs/gfs2/inode.c | 6 +++--- fs/gfs2/meta_io.c | 7 --- fs/gfs2/meta_io.h | 8 ++-- fs/gfs2/rgrp.c| 16 ++-- fs/gfs2/util.c| 1 + 9 files changed, 60 insertions(+), 32 deletions(-)
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes for the GFS2 file system. Bob Peterson The following changes since commit 9dffdb38d864ae89e16ff7b3a09451270736e35b: Merge tag 'staging-4.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging (2016-03-17 22:13:41 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.7.fixes for you to fetch changes up to 68cd4ce2caf22a81833eb1abfa075eb1cc39bfe2: GFS2: Refactor gfs2_remove_from_journal (2016-05-06 11:27:27 -0500) GFS2: merge window We've got nine patches this time: - Abhi Das has two patches that fix a GFS2 splice issue (and an adjustment). - Ben Marzinski has a patch which allows the proper unmount of a GFS2 file system after hitting a withdraw error. - I have a patch to fix a problem where GFS2 would dereference an error value, plus three cosmetic / refactoring patches. - Daniel DeFreez has a patch to fix two glock reference count problems, where GFS2 was not properly "uninitializing" its glock holder on error paths. - Denys Vlasenko has a patch to change a function to not be inlined, thus reducing the memory footprint of the GFS2 module. Abhi Das (2): gfs2: Use gfs2 wrapper to sync inode before calling generic_file_splice_read() gfs2: use inode_lock/unlock instead of accessing i_mutex directly Benjamin Marzinski (1): GFS2: ignore unlock failures after withdraw Bob Peterson (4): GFS2: Get rid of dead code in inode_go_demote_ok GFS2: Don't dereference inode in gfs2_inode_lookup until it's valid GFS2: Remove allocation parms from gfs2_rbm_find GFS2: Refactor gfs2_remove_from_journal Daniel DeFreez (1): GFS2: Add calls to gfs2_holder_uninit in two error handlers Denys Vlasenko (1): GFS2: fs/gfs2/glock.c: Deinline do_error, save 1856 bytes fs/gfs2/aops.c| 5 +++-- fs/gfs2/file.c| 31 --- fs/gfs2/glock.c | 11 +-- fs/gfs2/glops.c | 7 --- fs/gfs2/inode.c | 6 +++--- fs/gfs2/meta_io.c | 7 --- fs/gfs2/meta_io.h | 8 ++-- fs/gfs2/rgrp.c| 16 ++-- fs/gfs2/util.c| 1 + 9 files changed, 60 insertions(+), 32 deletions(-)
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes for the GFS2 file system. Bob Peterson The following changes since commit 67990608c8b95d2b8ccc29932376ae73d5818727: Merge tag 'pm+acpi-4.5-rc1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm (2016-01-12 20:25:09 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-merge-window for you to fetch changes up to 73b462d2808d7cbca4d7886cf6aaed850640e6cd: GFS2: Eliminate parameter non_block on gfs2_inode_lookup (2016-03-15 10:46:50 -0400) GFS2: merge window We only have six patches ready for this merge window. - Arnd Bergmann contributed a patch that fixes an uninitialized variable warning. - The second patch avoids a kernel panic due to referencing an iopen glock that may not be held, in an error path. - The third patch fixes a rounding error that caused xfs_tests direct IO write "fsx" tests to fail on GFS2. - The fourth patch tidies up the code path when glocks are being reused to recreate a dinode that was recently deleted. - The fifth reverts an ages-old patch that should no longer be needed, and which interfered with the transition of dinodes from unlinked to free. - And lastly, a patch to eliminate a function parameter that's not needed. Arnd Bergmann (1): gfs2: avoid uninitialized variable warning Bob Peterson (5): GFS2: Check if iopen is held when deleting inode GFS2: Fix direct IO write rounding error GFS2: Prevent delete work from occurring on glocks used for create GFS2: Don't filter out I_FREEING inodes anymore GFS2: Eliminate parameter non_block on gfs2_inode_lookup fs/gfs2/aops.c | 2 +- fs/gfs2/dir.c| 6 ++--- fs/gfs2/export.c | 2 +- fs/gfs2/glock.c | 10 +++- fs/gfs2/incore.h | 1 + fs/gfs2/inode.c | 71 +--- fs/gfs2/inode.h | 5 ++-- fs/gfs2/ops_fstype.c | 2 +- fs/gfs2/super.c | 26 +++ 9 files changed, 46 insertions(+), 79 deletions(-)
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes for the GFS2 file system. Bob Peterson The following changes since commit 67990608c8b95d2b8ccc29932376ae73d5818727: Merge tag 'pm+acpi-4.5-rc1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm (2016-01-12 20:25:09 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-merge-window for you to fetch changes up to 73b462d2808d7cbca4d7886cf6aaed850640e6cd: GFS2: Eliminate parameter non_block on gfs2_inode_lookup (2016-03-15 10:46:50 -0400) GFS2: merge window We only have six patches ready for this merge window. - Arnd Bergmann contributed a patch that fixes an uninitialized variable warning. - The second patch avoids a kernel panic due to referencing an iopen glock that may not be held, in an error path. - The third patch fixes a rounding error that caused xfs_tests direct IO write "fsx" tests to fail on GFS2. - The fourth patch tidies up the code path when glocks are being reused to recreate a dinode that was recently deleted. - The fifth reverts an ages-old patch that should no longer be needed, and which interfered with the transition of dinodes from unlinked to free. - And lastly, a patch to eliminate a function parameter that's not needed. Arnd Bergmann (1): gfs2: avoid uninitialized variable warning Bob Peterson (5): GFS2: Check if iopen is held when deleting inode GFS2: Fix direct IO write rounding error GFS2: Prevent delete work from occurring on glocks used for create GFS2: Don't filter out I_FREEING inodes anymore GFS2: Eliminate parameter non_block on gfs2_inode_lookup fs/gfs2/aops.c | 2 +- fs/gfs2/dir.c| 6 ++--- fs/gfs2/export.c | 2 +- fs/gfs2/glock.c | 10 +++- fs/gfs2/incore.h | 1 + fs/gfs2/inode.c | 71 +--- fs/gfs2/inode.h | 5 ++-- fs/gfs2/ops_fstype.c | 2 +- fs/gfs2/super.c | 26 +++ 9 files changed, 46 insertions(+), 79 deletions(-)
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. I added patch #6 at the last minute, so it hasn't had a chance to make it to linux-next yet, but it fixes a problem related to fs corruption when block size != page size. I apologize, but I felt the seriousness of the problem warranted an exception. It's proven to compile and been tested against a reliable reproducer. Bob Peterson The following changes since commit 6ff33f3902c3b1c5d0db6b1e2c70b6d76fba357f: Linux 4.3-rc1 (2015-09-12 16:35:56 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-merge-window for you to fetch changes up to 319eb9ebae9a2a9b502750e9e481d752180a: GFS2: Fix rgrp end rounding problem for bsize < page size (2015-11-09 09:38:02 -0600) GFS2: merge window Here is a list of patches we've accumulated for GFS2 for the current upstream merge window. There are only six patches this time: 1. A cleanup patch from Andreas to remove the gl_spin #define in favor of its value for the sake of clarity. 2. A fix from Andy Price to mark the inode dirty during fallocate. 3. A fix from Andy Price to set s_mode on mount failures to prevent a stack trace. 4. A patch from me to prevent a kernel BUG() in trans_add_meta/trans_add_data due to uninitialized storage. 5. A patch from me to protecting our freeing of the in-core directory hash table to prevent double-free. 6. A fix for a page/block rounding problem that resulted in a metadata coherency problem when the block size != page size. I've got a lot more patches in various stages of review and testing, but I'm afraid they'll have to wait until the next merge window. So next time we're likely to have a lot more. Andreas Gruenbacher (1): gfs2: Remove gl_spin define Andrew Price (2): GFS2: fallocate: do not rely on file_update_time to mark the inode dirty GFS2: Set s_mode before parsing mount options Bob Peterson (3): gfs2: Add missing else in trans_add_meta/data GFS2: Protect freeing directory hash table with i_lock spin_lock GFS2: Fix rgrp end rounding problem for bsize < page size Documentation/filesystems/gfs2-glocks.txt | 6 +-- fs/gfs2/dir.c | 7 ++- fs/gfs2/file.c| 2 +- fs/gfs2/glock.c | 84 +++ fs/gfs2/glock.h | 4 +- fs/gfs2/glops.c | 10 ++-- fs/gfs2/incore.h | 3 +- fs/gfs2/main.c| 2 +- fs/gfs2/ops_fstype.c | 4 +- fs/gfs2/rgrp.c| 9 ++-- fs/gfs2/trans.c | 4 ++ 11 files changed, 73 insertions(+), 62 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
GFS2: Pull request (merge window)
Hi Linus, Please consider pulling the following changes for the GFS2 file system. I added patch #6 at the last minute, so it hasn't had a chance to make it to linux-next yet, but it fixes a problem related to fs corruption when block size != page size. I apologize, but I felt the seriousness of the problem warranted an exception. It's proven to compile and been tested against a reliable reproducer. Bob Peterson The following changes since commit 6ff33f3902c3b1c5d0db6b1e2c70b6d76fba357f: Linux 4.3-rc1 (2015-09-12 16:35:56 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-merge-window for you to fetch changes up to 319eb9ebae9a2a9b502750e9e481d752180a: GFS2: Fix rgrp end rounding problem for bsize < page size (2015-11-09 09:38:02 -0600) GFS2: merge window Here is a list of patches we've accumulated for GFS2 for the current upstream merge window. There are only six patches this time: 1. A cleanup patch from Andreas to remove the gl_spin #define in favor of its value for the sake of clarity. 2. A fix from Andy Price to mark the inode dirty during fallocate. 3. A fix from Andy Price to set s_mode on mount failures to prevent a stack trace. 4. A patch from me to prevent a kernel BUG() in trans_add_meta/trans_add_data due to uninitialized storage. 5. A patch from me to protecting our freeing of the in-core directory hash table to prevent double-free. 6. A fix for a page/block rounding problem that resulted in a metadata coherency problem when the block size != page size. I've got a lot more patches in various stages of review and testing, but I'm afraid they'll have to wait until the next merge window. So next time we're likely to have a lot more. Andreas Gruenbacher (1): gfs2: Remove gl_spin define Andrew Price (2): GFS2: fallocate: do not rely on file_update_time to mark the inode dirty GFS2: Set s_mode before parsing mount options Bob Peterson (3): gfs2: Add missing else in trans_add_meta/data GFS2: Protect freeing directory hash table with i_lock spin_lock GFS2: Fix rgrp end rounding problem for bsize < page size Documentation/filesystems/gfs2-glocks.txt | 6 +-- fs/gfs2/dir.c | 7 ++- fs/gfs2/file.c| 2 +- fs/gfs2/glock.c | 84 +++ fs/gfs2/glock.h | 4 +- fs/gfs2/glops.c | 10 ++-- fs/gfs2/incore.h | 3 +- fs/gfs2/main.c| 2 +- fs/gfs2/ops_fstype.c | 4 +- fs/gfs2/rgrp.c| 9 ++-- fs/gfs2/trans.c | 4 ++ 11 files changed, 73 insertions(+), 62 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes for the GFS2 file system. I apologize for the late request, but as I explained in my previous email, I wanted to make sure everything was done "the right way." Bob Peterson The following changes since commit c63f887bdae80858c7cebf914f45f69bbaa88e8d: Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu (2015-06-28 16:52:47 -0700) are available in the git repository at: gitol...@gitolite.kernel.org:/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-merge-window for you to fetch changes up to 8f7e0a806db0a3ba33234af3c39d68ed8c144071: gfs2: A minor "sbstats" cleanup (2015-09-03 13:34:14 -0500) GFS2: merge window Here is a list of patches we've accumulated for GFS2 for the current upstream merge window. This time we've only got six patches, many of which are very small: - Three cleanups from Andreas Gruenbacher, including a nice cleanup of the sequence file code for the sbstats debugfs file. - A patch from Ben Hutchings that changes statistics variables from signed to unsigned. - Two patches from me that increase GFS2's glock scalability by switching from a conventional hash table to rhashtable. Andreas Gruenbacher (3): gfs2: Simplify the seq file code for "sbstats" gfs2: Fix a typo in a comment gfs2: A minor "sbstats" cleanup Ben Hutchings (1): gfs2: Make statistics unsigned, suitable for use with do_div() Bob Peterson (2): GFS2: Move glock superblock pointer to field gl_name GFS2: Use resizable hash table for glocks fs/gfs2/glock.c | 348 --- fs/gfs2/glops.c | 38 +++--- fs/gfs2/incore.h | 15 +-- fs/gfs2/lock_dlm.c | 12 +- fs/gfs2/lops.c | 6 +- fs/gfs2/meta_io.c| 6 +- fs/gfs2/meta_io.h| 2 +- fs/gfs2/quota.c | 22 ++-- fs/gfs2/rgrp.c | 10 +- fs/gfs2/trace_gfs2.h | 34 ++--- fs/gfs2/trans.c | 4 +- 11 files changed, 212 insertions(+), 285 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes for the GFS2 file system. I apologize for the late request, but as I explained in my previous email, I wanted to make sure everything was done "the right way." Bob Peterson The following changes since commit c63f887bdae80858c7cebf914f45f69bbaa88e8d: Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu (2015-06-28 16:52:47 -0700) are available in the git repository at: gitol...@gitolite.kernel.org:/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-merge-window for you to fetch changes up to 8f7e0a806db0a3ba33234af3c39d68ed8c144071: gfs2: A minor "sbstats" cleanup (2015-09-03 13:34:14 -0500) GFS2: merge window Here is a list of patches we've accumulated for GFS2 for the current upstream merge window. This time we've only got six patches, many of which are very small: - Three cleanups from Andreas Gruenbacher, including a nice cleanup of the sequence file code for the sbstats debugfs file. - A patch from Ben Hutchings that changes statistics variables from signed to unsigned. - Two patches from me that increase GFS2's glock scalability by switching from a conventional hash table to rhashtable. Andreas Gruenbacher (3): gfs2: Simplify the seq file code for "sbstats" gfs2: Fix a typo in a comment gfs2: A minor "sbstats" cleanup Ben Hutchings (1): gfs2: Make statistics unsigned, suitable for use with do_div() Bob Peterson (2): GFS2: Move glock superblock pointer to field gl_name GFS2: Use resizable hash table for glocks fs/gfs2/glock.c | 348 --- fs/gfs2/glops.c | 38 +++--- fs/gfs2/incore.h | 15 +-- fs/gfs2/lock_dlm.c | 12 +- fs/gfs2/lops.c | 6 +- fs/gfs2/meta_io.c| 6 +- fs/gfs2/meta_io.h| 2 +- fs/gfs2/quota.c | 22 ++-- fs/gfs2/rgrp.c | 10 +- fs/gfs2/trace_gfs2.h | 34 ++--- fs/gfs2/trans.c | 4 +- 11 files changed, 212 insertions(+), 285 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
GFS2 pull request for this merge window delayed a couple days
Hi, I just wanted to give everyone (especially Linus) a heads-up on this. I've been collecting patches for the GFS2 file system's for-next branch. The biggest change this time revolves around allowing GFS2 to use rhashtable for its glocks, providing far greater scalability. Since the patch was posted to cluster-devel, various people (especially Andreas G) posted a few small correction and cleanup patches. Rather than giving Linus a big pile of messy patches, I opted to combine them into one proper patch (doing things "the right way") plus the other five patches I had already queued. Unfortunately, this was all done just as Stephen Rothwell sent out his email not to push any more patches to linux-next, which left me in limbo. I asked Stephen his advice, and based on that, we decided to: 1. Push the "proper" patch set to for-next today. 2. Give linux-next two days to settle with the six new patches. 3. Then send the formal request to pull the patches for the merge window. I just wanted to let everyone know why our patch pull request is delayed. BTW, this six-patch set has already been posted to cluster-devel for review and been signed off last Wednesday. All of them are pretty much confined to GFS2 (except for new calls to rhashtable functions) so hopefully this is just a formality. Sorry for the delay. Regards, Bob Peterson GFS2 Maintainer -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
GFS2 pull request for this merge window delayed a couple days
Hi, I just wanted to give everyone (especially Linus) a heads-up on this. I've been collecting patches for the GFS2 file system's for-next branch. The biggest change this time revolves around allowing GFS2 to use rhashtable for its glocks, providing far greater scalability. Since the patch was posted to cluster-devel, various people (especially Andreas G) posted a few small correction and cleanup patches. Rather than giving Linus a big pile of messy patches, I opted to combine them into one proper patch (doing things "the right way") plus the other five patches I had already queued. Unfortunately, this was all done just as Stephen Rothwell sent out his email not to push any more patches to linux-next, which left me in limbo. I asked Stephen his advice, and based on that, we decided to: 1. Push the "proper" patch set to for-next today. 2. Give linux-next two days to settle with the six new patches. 3. Then send the formal request to pull the patches for the merge window. I just wanted to let everyone know why our patch pull request is delayed. BTW, this six-patch set has already been posted to cluster-devel for review and been signed off last Wednesday. All of them are pretty much confined to GFS2 (except for new calls to rhashtable functions) so hopefully this is just a formality. Sorry for the delay. Regards, Bob Peterson GFS2 Maintainer -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit f4a3ae9308e34bcd704325a08879b2c1cfb74686: GFS2: Use average srttb value in congestion calculations (2015-04-24 07:57:08 -0500) are available in the git repository at: gitol...@gitolite.kernel.org:/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-merge-window for you to fetch changes up to 39b0f1e9290880a6c905f639e7db6b646e302a4f: GFS2: Don't brelse rgrp buffer_heads every allocation (2015-06-19 07:40:22 -0500) GFS2: merge window Here is a list of patches we've accumulated for GFS2 for the current upstream merge window. We have a good mixture this time. Here are some of the features: 1. Fix a problem with RO mounts writing to the journal. 2. Further improvements to quotas on GFS2. 3. Added support for rename2 and RENAME_EXCHANGE on GFS2. 4. Increase performance by making glock lru_list less of a bottleneck. 5. Increase performance by avoiding unnecessary buffer_head releases. 6. Increase performance by using average glock round trip time from all CPUs. 7. Fixes for some compiler warnings and minor white space issues. 8. Other misc. bug fixes Abhi Das (5): gfs2: handle NULL rgd in set_rgrp_preferences gfs2: fix quota updates on block boundaries gfs2: limit quota log messages gfs2: s64 cast for negative quota value gfs2: Don't support fallocate on jdatafiles Antonio Ospite (1): GFS2: inode.c: indent with TABs, not spaces Benjamin Marzinski (3): GFS2: mark the journal idle to fix ro mounts GFS2: add support for rename2 and RENAME_EXCHANGE GFS2: make sure S_NOSEC flag isn't overwritten Bob Peterson (3): GFS2: Average in only non-zero round-trip times for congestion stats GFS2: Don't add all glocks to the lru GFS2: Don't brelse rgrp buffer_heads every allocation Fabian Frederick (3): gfs2: convert simple_str to kstr gfs2: kerneldoc warning fixes gfs2: fix shadow warning in gfs2_rbm_find() fs/gfs2/aops.c | 12 ++- fs/gfs2/file.c | 4 +- fs/gfs2/glock.c | 3 +- fs/gfs2/glops.c | 20 +++-- fs/gfs2/incore.h | 2 + fs/gfs2/inode.c | 211 +- fs/gfs2/ops_fstype.c | 1 + fs/gfs2/quota.c | 212 +++ fs/gfs2/rgrp.c | 41 +++--- fs/gfs2/rgrp.h | 1 + fs/gfs2/sys.c| 66 +++- 11 files changed, 429 insertions(+), 144 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes for the GFS2 file system. Regards, Bob Peterson The following changes since commit f4a3ae9308e34bcd704325a08879b2c1cfb74686: GFS2: Use average srttb value in congestion calculations (2015-04-24 07:57:08 -0500) are available in the git repository at: gitol...@gitolite.kernel.org:/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-merge-window for you to fetch changes up to 39b0f1e9290880a6c905f639e7db6b646e302a4f: GFS2: Don't brelse rgrp buffer_heads every allocation (2015-06-19 07:40:22 -0500) GFS2: merge window Here is a list of patches we've accumulated for GFS2 for the current upstream merge window. We have a good mixture this time. Here are some of the features: 1. Fix a problem with RO mounts writing to the journal. 2. Further improvements to quotas on GFS2. 3. Added support for rename2 and RENAME_EXCHANGE on GFS2. 4. Increase performance by making glock lru_list less of a bottleneck. 5. Increase performance by avoiding unnecessary buffer_head releases. 6. Increase performance by using average glock round trip time from all CPUs. 7. Fixes for some compiler warnings and minor white space issues. 8. Other misc. bug fixes Abhi Das (5): gfs2: handle NULL rgd in set_rgrp_preferences gfs2: fix quota updates on block boundaries gfs2: limit quota log messages gfs2: s64 cast for negative quota value gfs2: Don't support fallocate on jdatafiles Antonio Ospite (1): GFS2: inode.c: indent with TABs, not spaces Benjamin Marzinski (3): GFS2: mark the journal idle to fix ro mounts GFS2: add support for rename2 and RENAME_EXCHANGE GFS2: make sure S_NOSEC flag isn't overwritten Bob Peterson (3): GFS2: Average in only non-zero round-trip times for congestion stats GFS2: Don't add all glocks to the lru GFS2: Don't brelse rgrp buffer_heads every allocation Fabian Frederick (3): gfs2: convert simple_str to kstr gfs2: kerneldoc warning fixes gfs2: fix shadow warning in gfs2_rbm_find() fs/gfs2/aops.c | 12 ++- fs/gfs2/file.c | 4 +- fs/gfs2/glock.c | 3 +- fs/gfs2/glops.c | 20 +++-- fs/gfs2/incore.h | 2 + fs/gfs2/inode.c | 211 +- fs/gfs2/ops_fstype.c | 1 + fs/gfs2/quota.c | 212 +++ fs/gfs2/rgrp.c | 41 +++--- fs/gfs2/rgrp.h | 1 + fs/gfs2/sys.c| 66 +++- 11 files changed, 429 insertions(+), 144 deletions(-) -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: GFS2: Pull request (merge window)
- Original Message - > On Tue, Apr 14, 2015 at 10:47 AM, Bob Peterson wrote: > > > > 12 files changed, 184 insertions(+), 95 deletions(-) > > Oh, and this was incorrect. You had apparently limited the statistics > to the fs/gfs2 directory, and thus missed the changes to the > MAINTAINERS file. Don't do that - include all the changes. It's what I > see and compare against when I actually do the pull anyway. > > Linus Duly noted, and sorry for the confusion. Bob Peterson -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: GFS2: Pull request (merge window)
Hi, On 15/04/15 00:16, Linus Torvalds wrote: On Tue, Apr 14, 2015 at 10:47 AM, Bob Peterson wrote: There's another that adds me as a GFS2 co-maintainer [...] So generally, when I start getting pull requests from different people, I'd like to see a previous separate heads-up or confirmation from the previous person just so that I'm not taken by surprise. Rather than this kind of "as part of the pull request, make the thing official". Yes, yes, I can see that you use the same script that Steven did, and I can see that you've been the main developer lately, but still.. Anyway. Pulled. Linus Thanks - I'm very much still here, keeping an eye on everything, looking at all the patches and so forth, but not really writing any myself any more, due to taking on a wider role recently. That doesn't mean that GFS2 will have fewer developers though, and Bob has been working on it pretty much right from the start too, so this should be a smooth transition, Steve. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: GFS2: Pull request (merge window)
- Original Message - On Tue, Apr 14, 2015 at 10:47 AM, Bob Peterson rpete...@redhat.com wrote: 12 files changed, 184 insertions(+), 95 deletions(-) Oh, and this was incorrect. You had apparently limited the statistics to the fs/gfs2 directory, and thus missed the changes to the MAINTAINERS file. Don't do that - include all the changes. It's what I see and compare against when I actually do the pull anyway. Linus Duly noted, and sorry for the confusion. Bob Peterson -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: GFS2: Pull request (merge window)
Hi, On 15/04/15 00:16, Linus Torvalds wrote: On Tue, Apr 14, 2015 at 10:47 AM, Bob Peterson rpete...@redhat.com wrote: There's another that adds me as a GFS2 co-maintainer [...] So generally, when I start getting pull requests from different people, I'd like to see a previous separate heads-up or confirmation from the previous person just so that I'm not taken by surprise. Rather than this kind of as part of the pull request, make the thing official. Yes, yes, I can see that you use the same script that Steven did, and I can see that you've been the main developer lately, but still.. Anyway. Pulled. Linus Thanks - I'm very much still here, keeping an eye on everything, looking at all the patches and so forth, but not really writing any myself any more, due to taking on a wider role recently. That doesn't mean that GFS2 will have fewer developers though, and Bob has been working on it pretty much right from the start too, so this should be a smooth transition, Steve. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: GFS2: Pull request (merge window)
On Tue, Apr 14, 2015 at 10:47 AM, Bob Peterson wrote: > > 12 files changed, 184 insertions(+), 95 deletions(-) Oh, and this was incorrect. You had apparently limited the statistics to the fs/gfs2 directory, and thus missed the changes to the MAINTAINERS file. Don't do that - include all the changes. It's what I see and compare against when I actually do the pull anyway. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: GFS2: Pull request (merge window)
On Tue, Apr 14, 2015 at 10:47 AM, Bob Peterson wrote: > > There's another that adds me as a GFS2 co-maintainer [...] So generally, when I start getting pull requests from different people, I'd like to see a previous separate heads-up or confirmation from the previous person just so that I'm not taken by surprise. Rather than this kind of "as part of the pull request, make the thing official". Yes, yes, I can see that you use the same script that Steven did, and I can see that you've been the main developer lately, but still.. Anyway. Pulled. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Bob Peterson GFS2: merge window Here is a list of patches we've accumulated for GFS2 for the current upstream merge window. Most of the patches fix GFS2 quotas, which were not properly enforced. There's another that adds me as a GFS2 co-maintainer, and a couple patches that fix a kernel panic doing splice_write on GFS2 as well as a few correctness patches. The following changes since commit 28666d6dc3feca2b1983e6011df383299d8b6b64: Add myself (Bob Peterson) as a maintainer of GFS2 (2015-02-24 08:55:30 -0600) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-merge-window for you to fetch changes up to 30133177957dca9a3e2a37b720f891d3225a92a1: gfs2: fix quota refresh race in do_glock() (2015-04-08 09:31:18 -0500) GFS2: merge window Here is a list of patches we've accumulated for GFS2 for the current upstream merge window. Most of the patches fix GFS2 quotas, which were not properly enforced. There's another that adds me as a GFS2 co-maintainer, and a couple patches that fix a kernel panic doing splice_write on GFS2 as well as a few correctness patches. Abhi Das (4): gfs2: perform quota checks against allocation parameters gfs2: allow quota_check and inplace_reserve to return available blocks gfs2: allow fallocate to max out quotas/fs efficiently gfs2: fix quota refresh race in do_glock() Andreas Gruenbacher (1): GFS2: gfs2_set_acl(): Cache "no acl" as well Bob Peterson (2): GFS2: Allocate reservation during splice_write GFS2: Move gfs2_file_splice_write outside of #ifdef Chengyu Song (1): gfs2: incorrect check for debugfs returns fs/gfs2/acl.c| 6 +--- fs/gfs2/aops.c | 6 ++-- fs/gfs2/bmap.c | 2 +- fs/gfs2/file.c | 101 ++- fs/gfs2/glock.c | 47 +++--- fs/gfs2/incore.h | 4 ++- fs/gfs2/inode.c | 18 +- fs/gfs2/quota.c | 62 -- fs/gfs2/quota.h | 8 +++-- fs/gfs2/rgrp.c | 20 --- fs/gfs2/rgrp.h | 3 +- fs/gfs2/xattr.c | 2 +- 12 files changed, 184 insertions(+), 95 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Bob Peterson GFS2: merge window Here is a list of patches we've accumulated for GFS2 for the current upstream merge window. Most of the patches fix GFS2 quotas, which were not properly enforced. There's another that adds me as a GFS2 co-maintainer, and a couple patches that fix a kernel panic doing splice_write on GFS2 as well as a few correctness patches. The following changes since commit 28666d6dc3feca2b1983e6011df383299d8b6b64: Add myself (Bob Peterson) as a maintainer of GFS2 (2015-02-24 08:55:30 -0600) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-merge-window for you to fetch changes up to 30133177957dca9a3e2a37b720f891d3225a92a1: gfs2: fix quota refresh race in do_glock() (2015-04-08 09:31:18 -0500) GFS2: merge window Here is a list of patches we've accumulated for GFS2 for the current upstream merge window. Most of the patches fix GFS2 quotas, which were not properly enforced. There's another that adds me as a GFS2 co-maintainer, and a couple patches that fix a kernel panic doing splice_write on GFS2 as well as a few correctness patches. Abhi Das (4): gfs2: perform quota checks against allocation parameters gfs2: allow quota_check and inplace_reserve to return available blocks gfs2: allow fallocate to max out quotas/fs efficiently gfs2: fix quota refresh race in do_glock() Andreas Gruenbacher (1): GFS2: gfs2_set_acl(): Cache no acl as well Bob Peterson (2): GFS2: Allocate reservation during splice_write GFS2: Move gfs2_file_splice_write outside of #ifdef Chengyu Song (1): gfs2: incorrect check for debugfs returns fs/gfs2/acl.c| 6 +--- fs/gfs2/aops.c | 6 ++-- fs/gfs2/bmap.c | 2 +- fs/gfs2/file.c | 101 ++- fs/gfs2/glock.c | 47 +++--- fs/gfs2/incore.h | 4 ++- fs/gfs2/inode.c | 18 +- fs/gfs2/quota.c | 62 -- fs/gfs2/quota.h | 8 +++-- fs/gfs2/rgrp.c | 20 --- fs/gfs2/rgrp.h | 3 +- fs/gfs2/xattr.c | 2 +- 12 files changed, 184 insertions(+), 95 deletions(-) -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: GFS2: Pull request (merge window)
On Tue, Apr 14, 2015 at 10:47 AM, Bob Peterson rpete...@redhat.com wrote: There's another that adds me as a GFS2 co-maintainer [...] So generally, when I start getting pull requests from different people, I'd like to see a previous separate heads-up or confirmation from the previous person just so that I'm not taken by surprise. Rather than this kind of as part of the pull request, make the thing official. Yes, yes, I can see that you use the same script that Steven did, and I can see that you've been the main developer lately, but still.. Anyway. Pulled. Linus -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: GFS2: Pull request (merge window)
On Tue, Apr 14, 2015 at 10:47 AM, Bob Peterson rpete...@redhat.com wrote: 12 files changed, 184 insertions(+), 95 deletions(-) Oh, and this was incorrect. You had apparently limited the statistics to the fs/gfs2 directory, and thus missed the changes to the MAINTAINERS file. Don't do that - include all the changes. It's what I see and compare against when I actually do the pull anyway. Linus -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Steve. -- This time we have mostly clean ups. There is a bug fix for a NULL dereference relating to ACLs, and another which improves (but does not fix entirely) an allocation fall-back code path. The other three patches are small clean ups. -- The following changes since commit 11c8f01b423b2d9742ce21e44cb7da7b55429ad5: Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild (2015-01-08 14:35:00 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to 278702074ff77b1a3fa2061267997095959f5e2c: GFS2: Fix crash during ACL deletion in acl max entry check in gfs2_set_acl() (2015-02-10 10:14:56 +) This time we have mostly clean ups. There is a bug fix for a NULL dereference relating to ACLs, and another which improves (but does not fix entirely) an allocation fall-back code path. The other three patches are small clean ups. Andrew Elble (1): GFS2: Fix crash during ACL deletion in acl max entry check in gfs2_set_acl() Bob Peterson (2): GFS2: Eliminate __gfs2_glock_remove_from_lru GFS2: Eliminate a nonsense goto Oleg Drokin (1): GFS2: use __vmalloc GFP_NOFS for fs-related allocations. alex chen (1): GFS2: fix sprintf format specifier fs/gfs2/acl.c | 2 +- fs/gfs2/dir.c | 3 ++- fs/gfs2/glock.c| 13 +++-- fs/gfs2/inode.c| 3 --- fs/gfs2/recovery.c | 2 +- fs/gfs2/sys.c | 2 +- 6 files changed, 8 insertions(+), 17 deletions(-) signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Steve. -- This time we have mostly clean ups. There is a bug fix for a NULL dereference relating to ACLs, and another which improves (but does not fix entirely) an allocation fall-back code path. The other three patches are small clean ups. -- The following changes since commit 11c8f01b423b2d9742ce21e44cb7da7b55429ad5: Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild (2015-01-08 14:35:00 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to 278702074ff77b1a3fa2061267997095959f5e2c: GFS2: Fix crash during ACL deletion in acl max entry check in gfs2_set_acl() (2015-02-10 10:14:56 +) This time we have mostly clean ups. There is a bug fix for a NULL dereference relating to ACLs, and another which improves (but does not fix entirely) an allocation fall-back code path. The other three patches are small clean ups. Andrew Elble (1): GFS2: Fix crash during ACL deletion in acl max entry check in gfs2_set_acl() Bob Peterson (2): GFS2: Eliminate __gfs2_glock_remove_from_lru GFS2: Eliminate a nonsense goto Oleg Drokin (1): GFS2: use __vmalloc GFP_NOFS for fs-related allocations. alex chen (1): GFS2: fix sprintf format specifier fs/gfs2/acl.c | 2 +- fs/gfs2/dir.c | 3 ++- fs/gfs2/glock.c| 13 +++-- fs/gfs2/inode.c| 3 --- fs/gfs2/recovery.c | 2 +- fs/gfs2/sys.c | 2 +- 6 files changed, 8 insertions(+), 17 deletions(-) signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Steve. -- The following changes since commit 0df1f2487d2f0d04703f142813d53615d62a1da4: Linux 3.18-rc3 (2014-11-02 15:01:51 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to ec7d879c457611e540cb465c25f3040facbd1185: GFS2: gfs2_atomic_open(): simplify the use of finish_no_open() (2014-11-20 11:18:08 +) In contrast to recent merge windows, there are a number of interesting features this time. There is a set of patches to improve performance in relation to block reservations. Some correctness fixes for fallocate, and an update to the freeze/thaw code which greatly simplyfies this code path. In addition there is a set of clean ups from Al Viro too. Al Viro (5): GFS2: bugger off early if O_CREAT open finds a directory GFS2: gfs2_create_inode(): don't bother with d_splice_alias() GFS2: use kvfree() instead of open-coding it GFS2: gfs2_dir_get_hash_table(): avoiding deferred vfree() is easy here... GFS2: gfs2_atomic_open(): simplify the use of finish_no_open() Andrew Price (3): GFS2: Use inode_newsize_ok and get_write_access in fallocate GFS2: Update i_size properly on fallocate GFS2: Update timestamps on fallocate Benjamin Marzinski (2): fs: add freeze_super/thaw_super fs hooks GFS2: update freeze code to use freeze/thaw_super on all nodes Bob Peterson (3): GFS2: Set of distributed preferences for rgrps GFS2: Only increase rs_sizehint GFS2: If we use up our block reservation, request more next time Fabian Frederick (1): GFS2: directly return gfs2_dir_check() Markus Elfring (1): GFS2: Deletion of unnecessary checks before two function calls fs/block_dev.c | 10 - fs/gfs2/dir.c| 39 -- fs/gfs2/file.c | 83 -- fs/gfs2/glock.c | 3 +- fs/gfs2/glops.c | 26 ++-- fs/gfs2/glops.h | 2 + fs/gfs2/incore.h | 19 ++--- fs/gfs2/inode.c | 72 + fs/gfs2/log.c| 42 +-- fs/gfs2/main.c | 11 - fs/gfs2/ops_fstype.c | 18 +++-- fs/gfs2/quota.c | 9 + fs/gfs2/rgrp.c | 69 --- fs/gfs2/rgrp.h | 1 + fs/gfs2/super.c | 112 ++- fs/gfs2/super.h | 1 + fs/gfs2/trans.c | 17 ++-- fs/ioctl.c | 6 ++- include/linux/fs.h | 2 + 19 files changed, 315 insertions(+), 227 deletions(-) signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Steve. -- The following changes since commit 0df1f2487d2f0d04703f142813d53615d62a1da4: Linux 3.18-rc3 (2014-11-02 15:01:51 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to ec7d879c457611e540cb465c25f3040facbd1185: GFS2: gfs2_atomic_open(): simplify the use of finish_no_open() (2014-11-20 11:18:08 +) In contrast to recent merge windows, there are a number of interesting features this time. There is a set of patches to improve performance in relation to block reservations. Some correctness fixes for fallocate, and an update to the freeze/thaw code which greatly simplyfies this code path. In addition there is a set of clean ups from Al Viro too. Al Viro (5): GFS2: bugger off early if O_CREAT open finds a directory GFS2: gfs2_create_inode(): don't bother with d_splice_alias() GFS2: use kvfree() instead of open-coding it GFS2: gfs2_dir_get_hash_table(): avoiding deferred vfree() is easy here... GFS2: gfs2_atomic_open(): simplify the use of finish_no_open() Andrew Price (3): GFS2: Use inode_newsize_ok and get_write_access in fallocate GFS2: Update i_size properly on fallocate GFS2: Update timestamps on fallocate Benjamin Marzinski (2): fs: add freeze_super/thaw_super fs hooks GFS2: update freeze code to use freeze/thaw_super on all nodes Bob Peterson (3): GFS2: Set of distributed preferences for rgrps GFS2: Only increase rs_sizehint GFS2: If we use up our block reservation, request more next time Fabian Frederick (1): GFS2: directly return gfs2_dir_check() Markus Elfring (1): GFS2: Deletion of unnecessary checks before two function calls fs/block_dev.c | 10 - fs/gfs2/dir.c| 39 -- fs/gfs2/file.c | 83 -- fs/gfs2/glock.c | 3 +- fs/gfs2/glops.c | 26 ++-- fs/gfs2/glops.h | 2 + fs/gfs2/incore.h | 19 ++--- fs/gfs2/inode.c | 72 + fs/gfs2/log.c| 42 +-- fs/gfs2/main.c | 11 - fs/gfs2/ops_fstype.c | 18 +++-- fs/gfs2/quota.c | 9 + fs/gfs2/rgrp.c | 69 --- fs/gfs2/rgrp.h | 1 + fs/gfs2/super.c | 112 ++- fs/gfs2/super.h | 1 + fs/gfs2/trans.c | 17 ++-- fs/ioctl.c | 6 ++- include/linux/fs.h | 2 + 19 files changed, 315 insertions(+), 227 deletions(-) signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Steve. - The following changes since commit 37504a3be90b69438426d74ccf467a9fe192932b: Merge tag 'gfs2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes (2014-09-16 07:47:04 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to d29c0afe4db72ceb72149c3894a6079674e9751f: GFS2: use _RET_IP_ instead of (unsigned long)__builtin_return_address(0) (2014-10-08 09:57:07 +0100) This time we have a couple of bug fixes, one relating to bad i_goal values which are now ignored (i_goal is basically a hint so it is safe to so this) and another relating to the saving of the dirent location during rename. There is one performance improvement, which is an optimisation in rgblk_free so that multiple block deallocations will now be more efficient, and one clean up patch to use _RET_IP_ rather than writing it out longhand. Abhi Das (1): GFS2: fix bad inode i_goal values during block allocation Bob Peterson (2): GFS2: Make rename not save dirent location GFS2: Use gfs2_rbm_incr in rgblk_free Fabian Frederick (1): GFS2: use _RET_IP_ instead of (unsigned long)__builtin_return_address(0) fs/gfs2/dir.c | 9 +++-- fs/gfs2/dir.h | 1 + fs/gfs2/glock.c | 4 ++-- fs/gfs2/glops.c | 2 +- fs/gfs2/inode.c | 7 --- fs/gfs2/rgrp.c | 30 +- fs/gfs2/rgrp.h | 1 + fs/gfs2/trans.c | 2 +- 8 files changed, 38 insertions(+), 18 deletions(-) signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Steve. - The following changes since commit 37504a3be90b69438426d74ccf467a9fe192932b: Merge tag 'gfs2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes (2014-09-16 07:47:04 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to d29c0afe4db72ceb72149c3894a6079674e9751f: GFS2: use _RET_IP_ instead of (unsigned long)__builtin_return_address(0) (2014-10-08 09:57:07 +0100) This time we have a couple of bug fixes, one relating to bad i_goal values which are now ignored (i_goal is basically a hint so it is safe to so this) and another relating to the saving of the dirent location during rename. There is one performance improvement, which is an optimisation in rgblk_free so that multiple block deallocations will now be more efficient, and one clean up patch to use _RET_IP_ rather than writing it out longhand. Abhi Das (1): GFS2: fix bad inode i_goal values during block allocation Bob Peterson (2): GFS2: Make rename not save dirent location GFS2: Use gfs2_rbm_incr in rgblk_free Fabian Frederick (1): GFS2: use _RET_IP_ instead of (unsigned long)__builtin_return_address(0) fs/gfs2/dir.c | 9 +++-- fs/gfs2/dir.h | 1 + fs/gfs2/glock.c | 4 ++-- fs/gfs2/glops.c | 2 +- fs/gfs2/inode.c | 7 --- fs/gfs2/rgrp.c | 30 +- fs/gfs2/rgrp.h | 1 + fs/gfs2/trans.c | 2 +- 8 files changed, 38 insertions(+), 18 deletions(-) signature.asc Description: This is a digitally signed message part
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
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
GFS2: Pull request (fixes)
The following changes since commit 3c8fb50445833b93f69b6b703a29aae3523cad0c: Merge tag 'pm+acpi-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm (2014-06-19 18:58:57 -1000) 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 27ff6a0f7f5bf500e9d2a8760c062789b52c551f: GFS2: fs/gfs2/rgrp.c: kernel-doc warning fixes (2014-07-18 11:15:14 +0100) This patch set contains two minor docs/spelling fixes, some fixes for flock, a change to use GFP_NOFS to avoid recursion on a rarely used code path and a fix for a race relating to the glock lru. Bob Peterson (3): GFS2: Only wait for demote when last holder is dequeued GFS2: Allow flocks to use normal glock dq rather than dq_wait GFS2: Allow caching of glocks for flock Fabian Frederick (2): GFS2: replace count*size kzalloc by kcalloc GFS2: fs/gfs2/rgrp.c: kernel-doc warning fixes Geert Uytterhoeven (1): GFS2: memcontrol: Spelling s/invlidate/invalidate/ Steven Whitehouse (2): GFS2: Fix race in glock lru glock disposal GFS2: Use GFP_NOFS when allocating glocks fs/gfs2/file.c | 4 ++-- fs/gfs2/glock.c| 14 +- fs/gfs2/glops.c| 4 ++-- fs/gfs2/lock_dlm.c | 4 ++-- fs/gfs2/rgrp.c | 4 ++-- 5 files changed, 17 insertions(+), 13 deletions(-) signature.asc Description: This is a digitally signed message part
GFS2: Pull request (fixes)
The following changes since commit 3c8fb50445833b93f69b6b703a29aae3523cad0c: Merge tag 'pm+acpi-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm (2014-06-19 18:58:57 -1000) 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 27ff6a0f7f5bf500e9d2a8760c062789b52c551f: GFS2: fs/gfs2/rgrp.c: kernel-doc warning fixes (2014-07-18 11:15:14 +0100) This patch set contains two minor docs/spelling fixes, some fixes for flock, a change to use GFP_NOFS to avoid recursion on a rarely used code path and a fix for a race relating to the glock lru. Bob Peterson (3): GFS2: Only wait for demote when last holder is dequeued GFS2: Allow flocks to use normal glock dq rather than dq_wait GFS2: Allow caching of glocks for flock Fabian Frederick (2): GFS2: replace count*size kzalloc by kcalloc GFS2: fs/gfs2/rgrp.c: kernel-doc warning fixes Geert Uytterhoeven (1): GFS2: memcontrol: Spelling s/invlidate/invalidate/ Steven Whitehouse (2): GFS2: Fix race in glock lru glock disposal GFS2: Use GFP_NOFS when allocating glocks fs/gfs2/file.c | 4 ++-- fs/gfs2/glock.c| 14 +- fs/gfs2/glops.c| 4 ++-- fs/gfs2/lock_dlm.c | 4 ++-- fs/gfs2/rgrp.c | 4 ++-- 5 files changed, 17 insertions(+), 13 deletions(-) signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Steve. - The following changes since commit 6ca2a88ad820af56535ed1e6936e0490cb6ec6dc: Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2014-04-16 16:40:18 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to 0e48e055a7dfc0cf17bbabe4d9b523ee0b1a9ed6: GFS2: Prevent recovery before the local journal is set (2014-06-02 19:12:06 +0100) This must be about the smallest merge window patch set ever for GFS2. It is probably also the first one without a single patch from me. That is down to a combination of factors, and I have some things in the works that are not quite ready yet, that I hope to put in next time around. Returning to what is here this time... we have 3 patches which fix various warnings. Two are bug fixes (for quotas and also a rare recovery race condition). The final patch, from Ben Marzinski, is an important change in the freeze code which has been in progress for some time. This removes the need to take and drop the transaction lock for every single transaction, when the only time it was used, was at file system freeze time. Ben's patch integrates the freeze operation into the journal flush code as an alternative with lower overheads and also lands up resolving some difficult to fix races at the same time. Abhi Das (1): GFS2: quotas not being refreshed in gfs2_adjust_quota Benjamin Marzinski (1): GFS2: remove transaction glock Bob Peterson (1): GFS2: Prevent recovery before the local journal is set Fabian Frederick (3): GFS2: lops.c: replace 0 by NULL for pointers GFS2: fs/gfs2/bmap.c: kernel-doc warning fixes GFS2: fs/gfs2/file.c: kernel-doc warning fixes fs/gfs2/aops.c | 2 +- fs/gfs2/bmap.c | 8 ++-- fs/gfs2/file.c | 12 +++--- fs/gfs2/glops.c | 51 ++ fs/gfs2/glops.h | 2 +- fs/gfs2/incore.h | 14 -- fs/gfs2/inode.c | 40 - fs/gfs2/log.c| 93 +++- fs/gfs2/log.h| 11 - fs/gfs2/lops.c | 2 +- fs/gfs2/ops_fstype.c | 25 --- fs/gfs2/quota.c | 3 +- fs/gfs2/recovery.c | 22 +- fs/gfs2/rgrp.c | 2 +- fs/gfs2/super.c | 69 ++--- fs/gfs2/sys.c| 7 ++- fs/gfs2/trans.c | 44 +++ include/uapi/linux/gfs2_ondisk.h | 2 +- 18 files changed, 246 insertions(+), 163 deletions(-) signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Steve. - The following changes since commit 6ca2a88ad820af56535ed1e6936e0490cb6ec6dc: Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2014-04-16 16:40:18 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to 0e48e055a7dfc0cf17bbabe4d9b523ee0b1a9ed6: GFS2: Prevent recovery before the local journal is set (2014-06-02 19:12:06 +0100) This must be about the smallest merge window patch set ever for GFS2. It is probably also the first one without a single patch from me. That is down to a combination of factors, and I have some things in the works that are not quite ready yet, that I hope to put in next time around. Returning to what is here this time... we have 3 patches which fix various warnings. Two are bug fixes (for quotas and also a rare recovery race condition). The final patch, from Ben Marzinski, is an important change in the freeze code which has been in progress for some time. This removes the need to take and drop the transaction lock for every single transaction, when the only time it was used, was at file system freeze time. Ben's patch integrates the freeze operation into the journal flush code as an alternative with lower overheads and also lands up resolving some difficult to fix races at the same time. Abhi Das (1): GFS2: quotas not being refreshed in gfs2_adjust_quota Benjamin Marzinski (1): GFS2: remove transaction glock Bob Peterson (1): GFS2: Prevent recovery before the local journal is set Fabian Frederick (3): GFS2: lops.c: replace 0 by NULL for pointers GFS2: fs/gfs2/bmap.c: kernel-doc warning fixes GFS2: fs/gfs2/file.c: kernel-doc warning fixes fs/gfs2/aops.c | 2 +- fs/gfs2/bmap.c | 8 ++-- fs/gfs2/file.c | 12 +++--- fs/gfs2/glops.c | 51 ++ fs/gfs2/glops.h | 2 +- fs/gfs2/incore.h | 14 -- fs/gfs2/inode.c | 40 - fs/gfs2/log.c| 93 +++- fs/gfs2/log.h| 11 - fs/gfs2/lops.c | 2 +- fs/gfs2/ops_fstype.c | 25 --- fs/gfs2/quota.c | 3 +- fs/gfs2/recovery.c | 22 +- fs/gfs2/rgrp.c | 2 +- fs/gfs2/super.c | 69 ++--- fs/gfs2/sys.c| 7 ++- fs/gfs2/trans.c | 44 +++ include/uapi/linux/gfs2_ondisk.h | 2 +- 18 files changed, 246 insertions(+), 163 deletions(-) signature.asc Description: This is a digitally signed message part
Re: GFS2: Pull request (merge window)
Hi, On Fri, 2014-04-04 at 14:52 -0700, Linus Torvalds wrote: > On Tue, Apr 1, 2014 at 4:15 PM, Steven Whitehouse wrote: > > > > Please consider pulling the following changes > > This pull request is also missing shortlog and diffstat, like Jeff > Layton's did. Did we have some tooling failure, or is it just > coincidence? > > Please, guys, make sure your pull requests are valid. I've pulled this > one too, but.. > >Linus Sorry for the delay. I'd just been travelling for a few days and I didn't have remote access to the box I used to generated the pull request. Now that I've been able to have a look at the bash history, I can see what has happened git request-pull gfs2-merge-window git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git >my.pull What what I'd used to generate the request. Which is incorrect in that it should have been: git request-pull master git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git gfs2-merge-window >my.pull but it seems by putting the arguments in the wrong order, I still got a pull request generated, but without the diffstat, which is probably why I didn't spot my mistake. Anyway, apologies for having messed this up - I'll make a note to check this in future, Steve -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: GFS2: Pull request (merge window)
Hi, On Fri, 2014-04-04 at 14:52 -0700, Linus Torvalds wrote: On Tue, Apr 1, 2014 at 4:15 PM, Steven Whitehouse swhit...@redhat.com wrote: Please consider pulling the following changes This pull request is also missing shortlog and diffstat, like Jeff Layton's did. Did we have some tooling failure, or is it just coincidence? Please, guys, make sure your pull requests are valid. I've pulled this one too, but.. Linus Sorry for the delay. I'd just been travelling for a few days and I didn't have remote access to the box I used to generated the pull request. Now that I've been able to have a look at the bash history, I can see what has happened git request-pull gfs2-merge-window git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git my.pull What what I'd used to generate the request. Which is incorrect in that it should have been: git request-pull master git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git gfs2-merge-window my.pull but it seems by putting the arguments in the wrong order, I still got a pull request generated, but without the diffstat, which is probably why I didn't spot my mistake. Anyway, apologies for having messed this up - I'll make a note to check this in future, Steve -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: GFS2: Pull request (merge window)
On Tue, Apr 1, 2014 at 4:15 PM, Steven Whitehouse wrote: > > Please consider pulling the following changes This pull request is also missing shortlog and diffstat, like Jeff Layton's did. Did we have some tooling failure, or is it just coincidence? Please, guys, make sure your pull requests are valid. I've pulled this one too, but.. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: GFS2: Pull request (merge window)
On Tue, Apr 1, 2014 at 4:15 PM, Steven Whitehouse swhit...@redhat.com wrote: Please consider pulling the following changes This pull request is also missing shortlog and diffstat, like Jeff Layton's did. Did we have some tooling failure, or is it just coincidence? Please, guys, make sure your pull requests are valid. I've pulled this one too, but.. Linus -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Steve. -- The following changes since commit 1b2ad41214c9bf6e8befa000f0522629194bf540: GFS2: Fix address space from page function (2014-03-31 17:48:27 +0100) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to 1b2ad41214c9bf6e8befa000f0522629194bf540: GFS2: Fix address space from page function (2014-03-31 17:48:27 +0100) One of the main highlights this time, is not the patches themselves but instead the widening contributor base. It is good to see that interest is increasing in GFS2, and I'd like to thank all the contributors to this patch set. In addition to the usual set of bug fixes and clean ups, there are patches to improve inode creation performance when xattrs are required and some improvements to the transaction code which is intended to help improve scalability after further changes in due course. Journal extent mapping is also updated to make it more efficient and again, this is a foundation for future work in this area. The maximum number of ACLs has been increased to 300 (for a 4k block size) which means that even with a few additional xattrs from selinux, everything should fit within a single fs block. There is also a patch to bring GFS2's own copy of the writepages code up to the same level as the core VFS. Eventually we may be able to merge some of this code, since it is fairly similar. The other major change this time, is bringing consistency to the printing of messages via fs_, pr_ macros. signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Steve. -- The following changes since commit 1b2ad41214c9bf6e8befa000f0522629194bf540: GFS2: Fix address space from page function (2014-03-31 17:48:27 +0100) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to 1b2ad41214c9bf6e8befa000f0522629194bf540: GFS2: Fix address space from page function (2014-03-31 17:48:27 +0100) One of the main highlights this time, is not the patches themselves but instead the widening contributor base. It is good to see that interest is increasing in GFS2, and I'd like to thank all the contributors to this patch set. In addition to the usual set of bug fixes and clean ups, there are patches to improve inode creation performance when xattrs are required and some improvements to the transaction code which is intended to help improve scalability after further changes in due course. Journal extent mapping is also updated to make it more efficient and again, this is a foundation for future work in this area. The maximum number of ACLs has been increased to 300 (for a 4k block size) which means that even with a few additional xattrs from selinux, everything should fit within a single fs block. There is also a patch to bring GFS2's own copy of the writepages code up to the same level as the core VFS. Eventually we may be able to merge some of this code, since it is fairly similar. The other major change this time, is bringing consistency to the printing of messages via fs_level, pr_level macros. signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following patches, Steve. The following changes since commit 7a262d2ed9fa42fad8c4f243f8025580b58cf2f6: Merge git://git.kernel.org/pub/scm/virt/kvm/kvm (2014-01-02 14:50:18 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to d57b9c9a999a8f4475fe73fba629c964245800ca: GFS2: revert "GFS2: d_splice_alias() can't return error" (2014-01-18 09:50:53 +) The main topics this time are allocation, in the form of Bob's improvements when searching resource groups and several updates to quotas which should increase scalability. The quota changes follow on from those in the last merge window, and there will likely be further work to come in this area in due course. There are also a few patches which help to improve efficiency of adding entries into directories, and clean up some of that code. One on-disk change is included this time, which is to write some additional information which should be useful to fsck and also potentially for debugging. Other than that, its just a few small random bug fixes and clean ups. Bob Peterson (5): GFS2: If requested is too large, use the largest extent in the rgrp GFS2: Drop inadequate rgrps from the reservation tree GFS2: Implement a "rgrp has no extents longer than X" scheme GFS2: Increase i_writecount during gfs2_setattr_chown GFS2: Small cleanup J. Bruce Fields (1): GFS2: revert "GFS2: d_splice_alias() can't return error" Steven Whitehouse (18): GFS2: Clean up releasepage GFS2: Remove gfs2_quota_change_host structure GFS2: Remove test which is always true GFS2: Use range based functions for rgrp sync/invalidation GFS2: Use only a single address space for rgrps GFS2: Add directory addition info structure GFS2: Consolidate transaction blocks calculation for dir add GFS2: Remember directory insert point GFS2: For exhash conversion, only one block is needed GFS2: Add hints to directory leaf blocks GFS2: Add initialization for address space in super block GFS2: No need to invalidate pages for a dio read GFS2: Use RCU/hlist_bl based hash for quotas GFS2: Only run logd and quota when mounted read/write GFS2: Clean up quota slot allocation GFS2: Move quota bitmap operations under their own lock GFS2: Fix kbuild test robot reported warning GFS2: Don't use ENOBUFS when ENOMEM is the correct error code fs/gfs2/aops.c | 23 +-- fs/gfs2/dir.c| 90 +-- fs/gfs2/dir.h| 19 ++- fs/gfs2/glock.c | 29 ++-- fs/gfs2/glock.h | 2 +- fs/gfs2/glops.c | 26 +-- fs/gfs2/incore.h | 23 ++- fs/gfs2/inode.c | 118 +- fs/gfs2/lops.c | 5 + fs/gfs2/main.c | 1 + fs/gfs2/meta_io.c| 3 + fs/gfs2/ops_fstype.c | 58 ++- fs/gfs2/quota.c | 342 +++ fs/gfs2/quota.h | 1 + fs/gfs2/rgrp.c | 113 + fs/gfs2/rgrp.h | 2 +- fs/gfs2/super.c | 43 - include/uapi/linux/gfs2_ondisk.h | 11 +- 18 files changed, 550 insertions(+), 359 deletions(-) signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following patches, Steve. The following changes since commit 7a262d2ed9fa42fad8c4f243f8025580b58cf2f6: Merge git://git.kernel.org/pub/scm/virt/kvm/kvm (2014-01-02 14:50:18 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to d57b9c9a999a8f4475fe73fba629c964245800ca: GFS2: revert GFS2: d_splice_alias() can't return error (2014-01-18 09:50:53 +) The main topics this time are allocation, in the form of Bob's improvements when searching resource groups and several updates to quotas which should increase scalability. The quota changes follow on from those in the last merge window, and there will likely be further work to come in this area in due course. There are also a few patches which help to improve efficiency of adding entries into directories, and clean up some of that code. One on-disk change is included this time, which is to write some additional information which should be useful to fsck and also potentially for debugging. Other than that, its just a few small random bug fixes and clean ups. Bob Peterson (5): GFS2: If requested is too large, use the largest extent in the rgrp GFS2: Drop inadequate rgrps from the reservation tree GFS2: Implement a rgrp has no extents longer than X scheme GFS2: Increase i_writecount during gfs2_setattr_chown GFS2: Small cleanup J. Bruce Fields (1): GFS2: revert GFS2: d_splice_alias() can't return error Steven Whitehouse (18): GFS2: Clean up releasepage GFS2: Remove gfs2_quota_change_host structure GFS2: Remove test which is always true GFS2: Use range based functions for rgrp sync/invalidation GFS2: Use only a single address space for rgrps GFS2: Add directory addition info structure GFS2: Consolidate transaction blocks calculation for dir add GFS2: Remember directory insert point GFS2: For exhash conversion, only one block is needed GFS2: Add hints to directory leaf blocks GFS2: Add initialization for address space in super block GFS2: No need to invalidate pages for a dio read GFS2: Use RCU/hlist_bl based hash for quotas GFS2: Only run logd and quota when mounted read/write GFS2: Clean up quota slot allocation GFS2: Move quota bitmap operations under their own lock GFS2: Fix kbuild test robot reported warning GFS2: Don't use ENOBUFS when ENOMEM is the correct error code fs/gfs2/aops.c | 23 +-- fs/gfs2/dir.c| 90 +-- fs/gfs2/dir.h| 19 ++- fs/gfs2/glock.c | 29 ++-- fs/gfs2/glock.h | 2 +- fs/gfs2/glops.c | 26 +-- fs/gfs2/incore.h | 23 ++- fs/gfs2/inode.c | 118 +- fs/gfs2/lops.c | 5 + fs/gfs2/main.c | 1 + fs/gfs2/meta_io.c| 3 + fs/gfs2/ops_fstype.c | 58 ++- fs/gfs2/quota.c | 342 +++ fs/gfs2/quota.h | 1 + fs/gfs2/rgrp.c | 113 + fs/gfs2/rgrp.h | 2 +- fs/gfs2/super.c | 43 - include/uapi/linux/gfs2_ondisk.h | 11 +- 18 files changed, 550 insertions(+), 359 deletions(-) signature.asc Description: This is a digitally signed message part
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
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
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
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
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes when the merge window is open, Steve. -- The following changes since commit 2147dbfd059eb7fefcfd5934f74f25f0693d4a1f: GFS2: Use generic list_lru for quota (2013-11-04 11:17:49 +) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to 2147dbfd059eb7fefcfd5934f74f25f0693d4a1f: GFS2: Use generic list_lru for quota (2013-11-04 11:17:49 +) The main feature of interest this time is quota updates. There are some clean ups and some patches to use the new generic lru list code. There is still plenty of scope for some further changes in due course - faster lookups of quota structures is very much on the todo list. Also, a start has been made towards the more tricky issue of using the generic lru code with glocks, but that will have to be completed in a subsequent merge window. The other, more minor feature, is that there have been a number of performance patches which relate to block allocation. In particular they will improve performance when the disk is nearly full. Bob Peterson (5): GFS2: optimize rbm_from_block wrt bi_start GFS2: introduce bi_blocks for optimization GFS2: Do not reset flags on active reservations GFS2: Introduce rbm field bii GFS2: new function gfs2_rbm_incr Miklos Szeredi (2): GFS2: d_splice_alias() can't return error GFS2: fix dentry leaks Steven Whitehouse (12): GFS2: Clean up reservation removal GFS2: Add allocation parameters structure GFS2: Speed up starting point selection for block allocation GFS2: Move gfs2_icbit_munge into quota.c GFS2: Remove obsolete quota tunable GFS2: Make two similar quota code fragments into a function GFS2: Inline qd_trylock into gfs2_quota_unlock GFS2: Protect quota sync generation GFS2: Use lockref for glocks GFS2: Use reflink for quota data cache GFS2: Rename quota qd_lru_lock qd_lock GFS2: Use generic list_lru for quota fs/gfs2/aops.c |4 fs/gfs2/bmap.c |7 fs/gfs2/file.c | 10 - fs/gfs2/glock.c | 83 +- fs/gfs2/glock.h |2 fs/gfs2/glops.c |4 fs/gfs2/incore.h| 41 - fs/gfs2/inode.c | 44 +++-- fs/gfs2/main.c | 19 +- fs/gfs2/ops_fstype.c|2 fs/gfs2/quota.c | 371 +++- fs/gfs2/quota.h |9 - fs/gfs2/rgrp.c | 212 +-- fs/gfs2/rgrp.h |4 fs/gfs2/super.c |2 fs/gfs2/sys.c |2 fs/gfs2/util.c | 20 -- fs/gfs2/util.h |2 fs/gfs2/xattr.c |3 include/linux/lockref.h |6 lib/lockref.c |1 21 files changed, 482 insertions(+), 366 deletions(-) signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes when the merge window is open, Steve. -- The following changes since commit 2147dbfd059eb7fefcfd5934f74f25f0693d4a1f: GFS2: Use generic list_lru for quota (2013-11-04 11:17:49 +) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to 2147dbfd059eb7fefcfd5934f74f25f0693d4a1f: GFS2: Use generic list_lru for quota (2013-11-04 11:17:49 +) The main feature of interest this time is quota updates. There are some clean ups and some patches to use the new generic lru list code. There is still plenty of scope for some further changes in due course - faster lookups of quota structures is very much on the todo list. Also, a start has been made towards the more tricky issue of using the generic lru code with glocks, but that will have to be completed in a subsequent merge window. The other, more minor feature, is that there have been a number of performance patches which relate to block allocation. In particular they will improve performance when the disk is nearly full. Bob Peterson (5): GFS2: optimize rbm_from_block wrt bi_start GFS2: introduce bi_blocks for optimization GFS2: Do not reset flags on active reservations GFS2: Introduce rbm field bii GFS2: new function gfs2_rbm_incr Miklos Szeredi (2): GFS2: d_splice_alias() can't return error GFS2: fix dentry leaks Steven Whitehouse (12): GFS2: Clean up reservation removal GFS2: Add allocation parameters structure GFS2: Speed up starting point selection for block allocation GFS2: Move gfs2_icbit_munge into quota.c GFS2: Remove obsolete quota tunable GFS2: Make two similar quota code fragments into a function GFS2: Inline qd_trylock into gfs2_quota_unlock GFS2: Protect quota sync generation GFS2: Use lockref for glocks GFS2: Use reflink for quota data cache GFS2: Rename quota qd_lru_lock qd_lock GFS2: Use generic list_lru for quota fs/gfs2/aops.c |4 fs/gfs2/bmap.c |7 fs/gfs2/file.c | 10 - fs/gfs2/glock.c | 83 +- fs/gfs2/glock.h |2 fs/gfs2/glops.c |4 fs/gfs2/incore.h| 41 - fs/gfs2/inode.c | 44 +++-- fs/gfs2/main.c | 19 +- fs/gfs2/ops_fstype.c|2 fs/gfs2/quota.c | 371 +++- fs/gfs2/quota.h |9 - fs/gfs2/rgrp.c | 212 +-- fs/gfs2/rgrp.h |4 fs/gfs2/super.c |2 fs/gfs2/sys.c |2 fs/gfs2/util.c | 20 -- fs/gfs2/util.h |2 fs/gfs2/xattr.c |3 include/linux/lockref.h |6 lib/lockref.c |1 21 files changed, 482 insertions(+), 366 deletions(-) signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Steve. -- The following changes since commit d6a5e06cd17a3f901231e345e4acc1c3dab9fbb8: Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes (2013-08-19 09:30:12 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to 0c9018097fe2966d80fe39e5c9ca94bb436ec369: GFS2: dirty inode correctly in gfs2_write_end (2013-09-05 09:04:24 +0100) This is possibly the smallest ever set of GFS2 patches for a merge window. Also, most of them are bug fixes this time. Two of my three patches (moving gfs2_sync_meta and merging the two writepage implementations) are clean ups with the third (taking the glock ref in examine_bucket) being a fix for a difficult to hit race condition. The removal of an unused memory barrier is a clean up from Bob Peterson, and the "spectator" relates to a rarely used mount option. Ben Marzinski's patch fixes a corner case where the incorrect inode flags were being set, resulting in incorrect behaviour on fsync. Benjamin Marzinski (1): GFS2: dirty inode correctly in gfs2_write_end Bob Peterson (2): GFS2: Remove unnecessary memory barrier GFS2: Don't flag consistency error if first mounter is a spectator Steven Whitehouse (3): GFS2: Move gfs2_sync_meta to lops.c GFS2: Take glock reference in examine_bucket() GFS2: Merge ordered and writeback writepage fs/gfs2/aops.c | 44 +++ fs/gfs2/file.c | 4 +++- fs/gfs2/glock.c | 13 + fs/gfs2/lops.c | 18 ++ fs/gfs2/meta_io.c| 18 -- fs/gfs2/meta_io.h| 26 +++--- fs/gfs2/ops_fstype.c | 53 ++-- 7 files changed, 99 insertions(+), 77 deletions(-) signature.asc Description: This is a digitally signed message part
GFS2: Pull request (merge window)
Hi, Please consider pulling the following changes, Steve. -- The following changes since commit d6a5e06cd17a3f901231e345e4acc1c3dab9fbb8: Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes (2013-08-19 09:30:12 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git tags/gfs2-merge-window for you to fetch changes up to 0c9018097fe2966d80fe39e5c9ca94bb436ec369: GFS2: dirty inode correctly in gfs2_write_end (2013-09-05 09:04:24 +0100) This is possibly the smallest ever set of GFS2 patches for a merge window. Also, most of them are bug fixes this time. Two of my three patches (moving gfs2_sync_meta and merging the two writepage implementations) are clean ups with the third (taking the glock ref in examine_bucket) being a fix for a difficult to hit race condition. The removal of an unused memory barrier is a clean up from Bob Peterson, and the spectator relates to a rarely used mount option. Ben Marzinski's patch fixes a corner case where the incorrect inode flags were being set, resulting in incorrect behaviour on fsync. Benjamin Marzinski (1): GFS2: dirty inode correctly in gfs2_write_end Bob Peterson (2): GFS2: Remove unnecessary memory barrier GFS2: Don't flag consistency error if first mounter is a spectator Steven Whitehouse (3): GFS2: Move gfs2_sync_meta to lops.c GFS2: Take glock reference in examine_bucket() GFS2: Merge ordered and writeback writepage fs/gfs2/aops.c | 44 +++ fs/gfs2/file.c | 4 +++- fs/gfs2/glock.c | 13 + fs/gfs2/lops.c | 18 ++ fs/gfs2/meta_io.c| 18 -- fs/gfs2/meta_io.h| 26 +++--- fs/gfs2/ops_fstype.c | 53 ++-- 7 files changed, 99 insertions(+), 77 deletions(-) signature.asc Description: This is a digitally signed message part