From: Sasha Levin <Alexander.Levin@microsoft.com>
To: "stable@vger.kernel.org" <stable@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: Bob Peterson <rpeterso@redhat.com>,
Andreas Gruenbacher <agruenba@redhat.com>,
Sasha Levin <Alexander.Levin@microsoft.com>
Subject: [PATCH AUTOSEL 4.4 13/30] gfs2: Don't reject a supposedly full bitmap if we have blocks reserved
Date: Fri, 7 Sep 2018 00:39:05 +0000 [thread overview]
Message-ID: <20180907003853.57942-13-alexander.levin@microsoft.com> (raw)
In-Reply-To: <20180907003853.57942-1-alexander.levin@microsoft.com>
From: Bob Peterson <rpeterso@redhat.com>
[ Upstream commit e79e0e1428188b24c3b57309ffa54a33c4ae40c4 ]
Before this patch, you could get into situations like this:
1. Process 1 searches for X free blocks, finds them, makes a reservation
2. Process 2 searches for free blocks in the same rgrp, but now the
bitmap is full because process 1's reservation is skipped over.
So it marks the bitmap as GBF_FULL.
3. Process 1 tries to allocate blocks from its own reservation, but
since the GBF_FULL bit is set, it skips over the rgrp and searches
elsewhere, thus not using its own reservation.
This patch adds an additional check to allow processes to use their
own reservations.
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
fs/gfs2/rgrp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index c134c0462cee..220f9f767307 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -1691,7 +1691,8 @@ static int gfs2_rbm_find(struct gfs2_rbm *rbm, u8 state, u32 *minext,
while(1) {
bi = rbm_bi(rbm);
- if (test_bit(GBF_FULL, &bi->bi_flags) &&
+ if ((ip == NULL || !gfs2_rs_active(&ip->i_res)) &&
+ test_bit(GBF_FULL, &bi->bi_flags) &&
(state == GFS2_BLKST_FREE))
goto next_bitmap;
--
2.17.1
next prev parent reply other threads:[~2018-09-07 0:42 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-07 0:38 [PATCH AUTOSEL 4.4 01/30] usb: usbtest: use irqsave() in USB's complete callback Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.4 02/30] iommu/arm-smmu-v3: sync the OVACKFLG to PRIQ consumer register Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.4 03/30] ALSA: msnd: Fix the default sample sizes Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.4 04/30] ALSA: usb-audio: Fix multiple definitions in AU0828_DEVICE() macro Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.4 05/30] xfrm: fix 'passing zero to ERR_PTR()' warning Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 07/30] clk: imx6ul: fix missing of_node_put() Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 06/30] gfs2: Special-case rindex for gfs2_grow Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 08/30] kbuild: add .DELETE_ON_ERROR special target Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 10/30] MIPS: ath79: fix system restart Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 09/30] dmaengine: pl330: fix irq race with terminate_all Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 11/30] media: videobuf2-core: check for q->error in vb2_core_qbuf() Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 12/30] mtd/maps: fix solutionengine.c printk format warnings Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 14/30] iio: ad9523: Fix displayed phase Sasha Levin
2018-09-07 0:39 ` Sasha Levin [this message]
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 15/30] fbdev: omapfb: off by one in omapfb_register_client() Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 16/30] video: goldfishfb: fix memory leak on driver remove Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 17/30] fbdev/via: fix defined but not used warning Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 18/30] perf powerpc: Fix callchain ip filtering when return address is in a register Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 19/30] fbdev: Distinguish between interlaced and progressive modes Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 20/30] ARM: exynos: Clear global variable on init error path Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 21/30] perf powerpc: Fix callchain ip filtering Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 22/30] powerpc/powernv: opal_put_chars partial write fix Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 23/30] MIPS: jz4740: Bump zload address Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 25/30] xen-netfront: fix queue name setting Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 24/30] mac80211: restrict delayed tailroom needed decrement Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 26/30] arm64: dts: qcom: db410c: Fix Bluetooth LED trigger Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 28/30] s390/qeth: reset layer2 attribute on layer switch Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 27/30] s390/qeth: fix race in used-buffer accounting Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 30/30] crypto: sharah - Unregister correct algorithms for SAHARA 3 Sasha Levin
2018-09-07 0:39 ` [PATCH AUTOSEL 4.4 29/30] platform/x86: toshiba_acpi: Fix defined but not used build warnings Sasha Levin
2018-09-07 5:43 ` [PATCH AUTOSEL 4.4 01/30] usb: usbtest: use irqsave() in USB's complete callback Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180907003853.57942-13-alexander.levin@microsoft.com \
--to=alexander.levin@microsoft.com \
--cc=agruenba@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rpeterso@redhat.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome