All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josef Bacik <jbacik@fusionio.com>
To: Stefan Priebe - Profihost AG <s.priebe@profihost.ag>
Cc: Josef Bacik <JBacik@fusionio.com>,
	Chris Mason <clmason@fusionio.com>,
	"linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>
Subject: Re: No space left on device (28)
Date: Tue, 26 Mar 2013 09:30:53 -0400	[thread overview]
Message-ID: <20130326133053.GK1955@localhost.localdomain> (raw)
In-Reply-To: <51519ABB.4030207@profihost.ag>

On Tue, Mar 26, 2013 at 06:55:23AM -0600, Stefan Priebe - Profihost AG wrote:
> Hi Josef,
> 
> Am 26.03.2013 13:53, schrieb Josef Bacik:
> > On Tue, Mar 26, 2013 at 01:45:42AM -0600, Stefan Priebe wrote:
> >> Hi,
> >>
> >> output here:
> >> [  590.546162] returning enospc, space_info 3, size 0 reserved 0, flush 
> >> 2, flush_state 7  dumping space info
> >> [  590.548280] space_info 4 has 6439292928 free, is full
> >> [  590.548283] space_info total=25748307968, used=19308916736, pinned=0, 
> >> reserved=32768, may_use=6438354944, readonly=65536
> >> [  590.550147] returning enospc, space_info 3, size 0 reserved 0, flush 
> >> 2, flush_state 7  dumping space info
> >> [  590.552264] space_info 4 has 6439284736 free, is full
> >> [  590.552267] space_info total=25748307968, used=19308916736, pinned=0, 
> >> reserved=40960, may_use=6438354944, readonly=65536
> >> [  590.554141] returning enospc, space_info 3, size 0 reserved 0, flush 
> >> 2, flush_state 7  dumping space info
> >> [  590.556258] space_info 4 has 6439284736 free, is full
> >> [  590.556261] space_info total=25748307968, used=19308916736, pinned=0, 
> >> reserved=40960, may_use=6438354944, readonly=65536
> >> [  591.145255] returning enospc, space_info 3, size 0 reserved 0, flush 
> >> 2, flush_state 7  dumping space info
> >> [  591.147373] space_info 4 has 6439235584 free, is full
> >> [  591.147375] space_info total=25748307968, used=19308916736, pinned=0, 
> >> reserved=90112, may_use=6438354944, readonly=65536
> >> [  595.560257] returning enospc, space_info 3, size 0 reserved 0, flush 
> >> 2, flush_state 7  dumping space info
> >> [  595.562390] space_info 4 has 6439120896 free, is full
> >> [  595.562393] space_info total=25748307968, used=19309047808, pinned=0, 
> >> reserved=73728, may_use=6438297600, readonly=65536
> >>
> > 
> > Weird, we have all the flushing stuff set and yet there is still a whole lot of
> > outstanding reservations.  Do you have compression enabled?  Thanks,
> 
> no - it's just mounted with mount -o noatime
> 
> :~# cat /proc/mounts | grep btrfs
> /dev/mapper/raid54tb1 /mnt btrfs rw,noatime,space_cache 0 0
>

Ok I think I see what's going on.  Can you try this patch and see if it fixes
it?  Thanks,

Josef

 
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index bf6433f..84e8909 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -3803,6 +3803,19 @@ static int can_overcommit(struct btrfs_root *root,
 	return 0;
 }
 
+static int btrfs_try_writeback(struct super_block *sb, unsigned long nr_pages,
+			       enum wb_reason reason)
+{
+	if (!writeback_in_progress(sb->s_bdi) &&
+	    down_read_trylock(&sb->s_umount)) {
+		writeback_inodes_sb_nr(sb, nr_pages, reason);
+		up_read(&sb->s_umount);
+		return 1;
+	}
+
+	return 0;
+}
+
 void btrfs_writeback_inodes_sb_nr(struct btrfs_root *root,
 				  unsigned long nr_pages)
 {
@@ -3810,8 +3823,7 @@ void btrfs_writeback_inodes_sb_nr(struct btrfs_root *root,
 	int started;
 
 	/* If we can not start writeback, just sync all the delalloc file. */
-	started = try_to_writeback_inodes_sb_nr(sb, nr_pages,
-						      WB_REASON_FS_FREE_SPACE);
+	started = btrfs_try_writeback(sb, nr_pages, WB_REASON_FS_FREE_SPACE);
 	if (!started) {
 		/*
 		 * We needn't worry the filesystem going from r/w to r/o though
-- 
1.7.7.6


  reply	other threads:[~2013-03-26 13:30 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-21  8:03 No space left on device (28) Stefan Priebe - Profihost AG
2013-03-21 18:00 ` Chris Mason
2013-03-21 18:35   ` Stefan Priebe - Profihost AG
2013-03-21 19:02     ` Chris Mason
2013-03-21 19:42       ` Stefan Priebe
2013-03-22  6:08         ` Stefan Priebe - Profihost AG
2013-03-22 12:11           ` Stefan Priebe - Profihost AG
2013-03-22 13:53             ` Josef Bacik
2013-03-22 13:56               ` Stefan Priebe - Profihost AG
2013-03-22 15:54                 ` Josef Bacik
2013-03-22 19:10                   ` Stefan Priebe
2013-03-22 20:49                     ` Josef Bacik
2013-03-22 20:55                       ` Stefan Priebe
2013-03-25 20:14                         ` Josef Bacik
2013-03-26  7:45                           ` Stefan Priebe
2013-03-26 12:53                             ` Josef Bacik
2013-03-26 12:55                               ` Stefan Priebe - Profihost AG
2013-03-26 13:30                                 ` Josef Bacik [this message]
2013-03-26 13:49                                   ` Stefan Priebe - Profihost AG
2013-03-26 14:44                                     ` Josef Bacik
2013-03-26 15:03                                       ` Stefan Priebe - Profihost AG
2013-03-26 15:25                                         ` Josef Bacik
2013-03-26 16:19                                           ` Stefan Priebe
2013-03-26 17:45                                             ` Josef Bacik
2013-03-26 19:05                                               ` Stefan Priebe
2013-03-26 19:16                                                 ` Josef Bacik
2013-03-26 19:22                                                   ` Stefan Priebe
2013-03-26 19:38                                                     ` Josef Bacik
2013-03-26 19:47                                                       ` Stefan Priebe
2013-03-22  6:13         ` Roman Mamedov
2013-03-22  6:24           ` cwillu
2013-03-22  6:39             ` Stefan Priebe - Profihost AG
2013-03-22  6:41               ` cwillu
2013-03-22  7:06                 ` Stefan Priebe - Profihost AG
2013-03-22  6:38           ` Stefan Priebe - Profihost AG

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=20130326133053.GK1955@localhost.localdomain \
    --to=jbacik@fusionio.com \
    --cc=clmason@fusionio.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=s.priebe@profihost.ag \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.