Re: cross-merges with MFD tree (was: Re: GFS2: Pull Request)

2019-05-29 Thread Lee Jones
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)

2019-05-28 Thread Jacek Anaszewski

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

2019-05-08 Thread Jonathan Corbet
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

2019-05-08 Thread Andreas Gruenbacher
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

2019-05-08 Thread Linus Torvalds
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)

2019-05-08 Thread Andreas Grünbacher
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)

2019-03-08 Thread Bob Peterson
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)

2018-12-19 Thread Bob Peterson
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)

2018-10-23 Thread Bob Peterson
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)

2018-10-23 Thread Bob Peterson
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)

2018-04-12 Thread Bob Peterson
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)

2018-04-12 Thread Bob Peterson
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)

2018-04-03 Thread Bob Peterson
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)

2018-04-03 Thread Bob Peterson
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)

2018-01-31 Thread Bob Peterson
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)

2018-01-31 Thread Bob Peterson
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)

2017-11-14 Thread Bob Peterson
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)

2017-11-14 Thread Bob Peterson
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)

2017-11-14 Thread Bob Peterson
- 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)

2017-11-14 Thread Bob Peterson
- 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)

2017-11-14 Thread Bob Peterson
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)

2017-11-14 Thread Bob Peterson
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)

2017-09-04 Thread Bob Peterson
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)

2017-09-04 Thread Bob Peterson
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

2017-07-07 Thread Bob Peterson
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

2017-07-07 Thread Bob Peterson
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)

2017-07-05 Thread Bob Peterson
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)

2017-07-05 Thread Bob Peterson
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)

2017-05-05 Thread Linus Torvalds
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


Re: GFS2: Pull request (merge window)

2017-05-05 Thread Linus Torvalds
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)

2017-05-05 Thread Bob Peterson
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)

2017-05-05 Thread Bob Peterson
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

2017-05-05 Thread Bob Peterson
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

2017-05-05 Thread Bob Peterson
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)

2017-05-03 Thread Bob Peterson
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)

2017-05-03 Thread Bob Peterson
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

2017-03-15 Thread Bob Peterson
- 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

2017-03-15 Thread Bob Peterson
- 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

2017-03-15 Thread Linus Torvalds
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


Re: GFS2: pull request for high-priority bug

2017-03-15 Thread Linus Torvalds
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

2017-03-15 Thread Bob Peterson
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

2017-03-15 Thread Bob Peterson
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

2017-02-23 Thread Bob Peterson
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

2017-02-23 Thread Bob Peterson
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)

2017-02-21 Thread Bob Peterson
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)

2017-02-21 Thread Bob Peterson
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)

2016-10-03 Thread Bob Peterson
(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)

2016-10-03 Thread Bob Peterson
(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)

2016-07-22 Thread Bob Peterson
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)

2016-07-22 Thread Bob Peterson
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)

2016-05-20 Thread Bob Peterson
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)

2016-05-20 Thread Bob Peterson
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)

2016-03-19 Thread Bob Peterson
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)

2016-03-19 Thread Bob Peterson
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)

2015-11-09 Thread Bob Peterson
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)

2015-11-09 Thread Bob Peterson
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)

2015-09-10 Thread Bob Peterson
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)

2015-09-10 Thread Bob Peterson
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

2015-09-08 Thread Bob Peterson
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

2015-09-08 Thread Bob Peterson
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)

2015-06-26 Thread Bob Peterson
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)

2015-06-26 Thread Bob Peterson
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)

2015-04-15 Thread Bob Peterson
- 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)

2015-04-15 Thread Steven Whitehouse

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)

2015-04-15 Thread Bob Peterson
- 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)

2015-04-15 Thread Steven Whitehouse

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)

2015-04-14 Thread Linus Torvalds
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)

2015-04-14 Thread Linus Torvalds
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)

2015-04-14 Thread Bob Peterson
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)

2015-04-14 Thread Bob Peterson
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)

2015-04-14 Thread Linus Torvalds
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)

2015-04-14 Thread Linus Torvalds
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)

2015-02-10 Thread Steven Whitehouse
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)

2015-02-10 Thread Steven Whitehouse
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)

2014-12-08 Thread Steven Whitehouse
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)

2014-12-08 Thread Steven Whitehouse
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)

2014-10-08 Thread Steven Whitehouse
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)

2014-10-08 Thread Steven Whitehouse
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)

2014-09-16 Thread Steven Whitehouse
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)

2014-09-16 Thread Steven Whitehouse
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)

2014-07-18 Thread Steven Whitehouse
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)

2014-07-18 Thread Steven Whitehouse
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)

2014-06-04 Thread Steven Whitehouse
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)

2014-06-04 Thread Steven Whitehouse
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)

2014-04-07 Thread Steven Whitehouse
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)

2014-04-07 Thread Steven Whitehouse
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)

2014-04-04 Thread Linus Torvalds
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)

2014-04-04 Thread Linus Torvalds
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)

2014-04-01 Thread Steven Whitehouse

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)

2014-04-01 Thread Steven Whitehouse

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)

2014-01-20 Thread Steven Whitehouse
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)

2014-01-20 Thread Steven Whitehouse
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)

2014-01-02 Thread Steven Whitehouse
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)

2014-01-02 Thread Steven Whitehouse
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)

2013-11-22 Thread Steven Whitehouse
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)

2013-11-22 Thread Steven Whitehouse
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)

2013-11-05 Thread Steven Whitehouse
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)

2013-11-05 Thread Steven Whitehouse
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)

2013-09-09 Thread Steven Whitehouse
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)

2013-09-09 Thread Steven Whitehouse
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


  1   2   >