Re: [BUG REPORT] Kernel panic on 3.9.0-rc7-4-gbb33db7

2013-04-18 Thread Wanlong Gao
On 04/19/2013 02:17 PM, Tejun Heo wrote:
> On Thu, Apr 18, 2013 at 10:57:54PM -0700, Tejun Heo wrote:
>> No wonder this thing crashes.  Chris, can't the original bio carry
>> bbio in bi_private and let end_bio_extent_readpage() free the bbio
>> instead of abusing bi_bdev like this?
> 
> BTW, I think it's a bit too late to fix this properly from btrfs side
> unless we're gonna do -rc8, so let's revert the TP patch for now and
> sort this out in the next devel cycle.  AFAICS, while disturbingly
> (ha|yu)cky, the bi_bdev trick should be okay without the new TP.

Thank you for investigating this. And sorry for my incompleted panic picture
before that let you detour. :-(

Regards,
Wanlong Gao

> 
> Thanks.
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3.0-rc7] btrfs: Update git repository links for btrfs utilities in Documentation/filesystems/btrfs.txt

2011-07-17 Thread Wanlong Gao

On 07/18/2011 12:53 PM, Wang Sheng-Hui wrote:

The patch is against 3.0-rc7 kernel.


From d22497ac8c5dd55a2ef9a47de5f2ddee55f8ec50 Mon Sep 17 00:00:00 2001

From: Wang Sheng-Hui
Date: Sun, 17 Jul 2011 21:45:01 -0500
Subject: [PATCH 3.0-rc7] btrfs: Update git repository links for btrfs utilities 
in Documentation/filesystems/btrfs.txt

git repository link for btrfs utilities
http://git.kernel.org/?p=linux/kernel/git/mason/btrfs-progs-unstable.git
doesn't work, and git-clone can get failed as:
$ git clone
http://git.kernel.org/?p=linux/kernel/git/mason/btrfs-progs-unstable.git
Initialized empty Git repository in
/home/crossover/dev/btrfs-progs-unstable/.git/
fatal:
http://git.kernel.org/?p=linux/kernel/git/mason/btrfs-progs-unstable.git/info/refs
 not found: did you run git update-server-info on the server?

Update git repository links for btrfs utilities to the latest ones
in Documentation/filesystems/btrfs.txt

Signed-off-by: Wang Sheng-Hui
---
  Documentation/filesystems/btrfs.txt |3 ++-
  1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/Documentation/filesystems/btrfs.txt 
b/Documentation/filesystems/btrfs.txt
index 64087c3..b095261 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -63,8 +63,9 @@ IRC network.
  Userspace tools for creating and manipulating Btrfs file systems are
  available from the git repository at the following location:

- http://git.kernel.org/?p=linux/kernel/git/mason/btrfs-progs-unstable.git

It's the right git-web URL.

   git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git
+ http://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git
+ https://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git

  These include the following tools:




--
Thanks
Best Regards
Wanlong Gao
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] Btrfs:don't check the return value of __btrfs_add_inode_defrag

2011-07-18 Thread Wanlong Gao
Don't need to check the return value of __btrfs_add_inode_defrag(),
since it will always return 0.

Signed-off-by: Wanlong Gao 
---
 fs/btrfs/file.c |   11 +--
 1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index fa4ef18..4a6d190 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -74,7 +74,7 @@ struct inode_defrag {
  * If an existing record is found the defrag item you
  * pass in is freed
  */
-static int __btrfs_add_inode_defrag(struct inode *inode,
+static void __btrfs_add_inode_defrag(struct inode *inode,
struct inode_defrag *defrag)
 {
struct btrfs_root *root = BTRFS_I(inode)->root;
@@ -106,11 +106,11 @@ static int __btrfs_add_inode_defrag(struct inode *inode,
BTRFS_I(inode)->in_defrag = 1;
rb_link_node(&defrag->rb_node, parent, p);
rb_insert_color(&defrag->rb_node, &root->fs_info->defrag_inodes);
-   return 0;
+   return;
 
 exists:
kfree(defrag);
-   return 0;
+   return;
 
 }
 
@@ -123,7 +123,6 @@ int btrfs_add_inode_defrag(struct btrfs_trans_handle *trans,
 {
struct btrfs_root *root = BTRFS_I(inode)->root;
struct inode_defrag *defrag;
-   int ret = 0;
u64 transid;
 
if (!btrfs_test_opt(root, AUTO_DEFRAG))
@@ -150,9 +149,9 @@ int btrfs_add_inode_defrag(struct btrfs_trans_handle *trans,
 
spin_lock(&root->fs_info->defrag_inodes_lock);
if (!BTRFS_I(inode)->in_defrag)
-   ret = __btrfs_add_inode_defrag(inode, defrag);
+   __btrfs_add_inode_defrag(inode, defrag);
spin_unlock(&root->fs_info->defrag_inodes_lock);
-   return ret;
+   return 0;
 }
 
 /*
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] btrfs:make btrfs_init_compress() return void

2011-08-22 Thread Wanlong Gao
From: Wanlong Gao 

Make btrfs_init_compress() return void, since it always return 0,
and no need to check return value.

Signed-off-by: Wanlong Gao 
---
 fs/btrfs/compression.c |3 +--
 fs/btrfs/compression.h |2 +-
 fs/btrfs/super.c   |7 ++-
 3 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index 8ec5d86..b2dbefa 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -731,7 +731,7 @@ struct btrfs_compress_op *btrfs_compress_op[] = {
&btrfs_lzo_compress,
 };
 
-int __init btrfs_init_compress(void)
+void __init btrfs_init_compress(void)
 {
int i;
 
@@ -741,7 +741,6 @@ int __init btrfs_init_compress(void)
atomic_set(&comp_alloc_workspace[i], 0);
init_waitqueue_head(&comp_workspace_wait[i]);
}
-   return 0;
 }
 
 /*
diff --git a/fs/btrfs/compression.h b/fs/btrfs/compression.h
index a12059f..9afb0a6 100644
--- a/fs/btrfs/compression.h
+++ b/fs/btrfs/compression.h
@@ -19,7 +19,7 @@
 #ifndef __BTRFS_COMPRESSION_
 #define __BTRFS_COMPRESSION_
 
-int btrfs_init_compress(void);
+void btrfs_init_compress(void);
 void btrfs_exit_compress(void);
 
 int btrfs_compress_pages(int type, struct address_space *mapping,
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 15634d4..31e9654 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1238,9 +1238,7 @@ static int __init init_btrfs_fs(void)
if (err)
return err;
 
-   err = btrfs_init_compress();
-   if (err)
-   goto free_sysfs;
+   btrfs_init_compress();
 
err = btrfs_init_cachep();
if (err)
@@ -1281,8 +1279,7 @@ free_cachep:
btrfs_destroy_cachep();
 free_compress:
btrfs_exit_compress();
-free_sysfs:
-   btrfs_exit_sysfs();
+
return err;
 }
 
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] btrfs:make close_ctree() return void

2011-08-22 Thread Wanlong Gao
From: Wanlong Gao 

Make close_ctree() return void since it always return 0, and fix
the return value of btrfs_put_super() to consistent with VFS.

Signed-off-by: Wanlong Gao 
---
 fs/btrfs/disk-io.c |4 +---
 fs/btrfs/disk-io.h |2 +-
 fs/btrfs/super.c   |5 +
 3 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 07b3ac6..b2c15d4 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -2528,7 +2528,7 @@ int btrfs_commit_super(struct btrfs_root *root)
return ret;
 }
 
-int close_ctree(struct btrfs_root *root)
+void close_ctree(struct btrfs_root *root)
 {
struct btrfs_fs_info *fs_info = root->fs_info;
int ret;
@@ -2630,8 +2630,6 @@ int close_ctree(struct btrfs_root *root)
kfree(fs_info->dev_root);
kfree(fs_info->csum_root);
kfree(fs_info);
-
-   return 0;
 }
 
 int btrfs_buffer_uptodate(struct extent_buffer *buf, u64 parent_transid)
diff --git a/fs/btrfs/disk-io.h b/fs/btrfs/disk-io.h
index bec3ea4..4a191b2 100644
--- a/fs/btrfs/disk-io.h
+++ b/fs/btrfs/disk-io.h
@@ -47,7 +47,7 @@ int clean_tree_block(struct btrfs_trans_handle *trans,
 struct btrfs_root *open_ctree(struct super_block *sb,
  struct btrfs_fs_devices *fs_devices,
  char *options);
-int close_ctree(struct btrfs_root *root);
+void close_ctree(struct btrfs_root *root);
 int write_ctree_super(struct btrfs_trans_handle *trans,
  struct btrfs_root *root, int max_mirrors);
 struct buffer_head *btrfs_read_dev_super(struct block_device *bdev);
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 31e9654..e1d8d32 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -146,12 +146,9 @@ void __btrfs_std_error(struct btrfs_fs_info *fs_info, 
const char *function,
 static void btrfs_put_super(struct super_block *sb)
 {
struct btrfs_root *root = btrfs_sb(sb);
-   int ret;
 
-   ret = close_ctree(root);
+   close_ctree(root);
sb->s_fs_info = NULL;
-
-   (void)ret; /* FIXME: need to fix VFS to return error? */
 }
 
 enum {
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] btrfs:make btrfs_init_compress() return void

2011-08-22 Thread Wanlong Gao

On 08/23/2011 07:43 AM, Tsutomu Itoh wrote:

(2011/08/22 23:22), Wanlong Gao wrote:

From: Wanlong Gao

Make btrfs_init_compress() return void, since it always return 0,
and no need to check return value.

Signed-off-by: Wanlong Gao
---
  fs/btrfs/compression.c |3 +--
  fs/btrfs/compression.h |2 +-
  fs/btrfs/super.c   |7 ++-
  3 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index 8ec5d86..b2dbefa 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -731,7 +731,7 @@ struct btrfs_compress_op *btrfs_compress_op[] = {
&btrfs_lzo_compress,
  };

-int __init btrfs_init_compress(void)
+void __init btrfs_init_compress(void)
  {
int i;

@@ -741,7 +741,6 @@ int __init btrfs_init_compress(void)
atomic_set(&comp_alloc_workspace[i], 0);
init_waitqueue_head(&comp_workspace_wait[i]);
}
-   return 0;
  }

  /*
diff --git a/fs/btrfs/compression.h b/fs/btrfs/compression.h
index a12059f..9afb0a6 100644
--- a/fs/btrfs/compression.h
+++ b/fs/btrfs/compression.h
@@ -19,7 +19,7 @@
  #ifndef __BTRFS_COMPRESSION_
  #define __BTRFS_COMPRESSION_

-int btrfs_init_compress(void);
+void btrfs_init_compress(void);
  void btrfs_exit_compress(void);

  int btrfs_compress_pages(int type, struct address_space *mapping,
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 15634d4..31e9654 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1238,9 +1238,7 @@ static int __init init_btrfs_fs(void)
if (err)
return err;

-   err = btrfs_init_compress();
-   if (err)
-   goto free_sysfs;
+   btrfs_init_compress();

err = btrfs_init_cachep();
if (err)
@@ -1281,8 +1279,7 @@ free_cachep:
btrfs_destroy_cachep();
  free_compress:
btrfs_exit_compress();



-free_sysfs:
-   btrfs_exit_sysfs();
+


Why remove btrfs_exit_sysfs()?


Yeah, a mistake, just wanna remove the label.

Thanks
-Wanlong Gao


  -Tsutomu


return err;
  }



--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2] btrfs:make btrfs_init_compress() return void

2011-08-22 Thread Wanlong Gao
Make btrfs_init_compress() return void, since it always return 0,
and no need to check return value.

Signed-off-by: Wanlong Gao 
---
 fs/btrfs/compression.c |3 +--
 fs/btrfs/compression.h |2 +-
 fs/btrfs/super.c   |7 +++
 3 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index 8ec5d86..b2dbefa 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -731,7 +731,7 @@ struct btrfs_compress_op *btrfs_compress_op[] = {
&btrfs_lzo_compress,
 };
 
-int __init btrfs_init_compress(void)
+void __init btrfs_init_compress(void)
 {
int i;
 
@@ -741,7 +741,6 @@ int __init btrfs_init_compress(void)
atomic_set(&comp_alloc_workspace[i], 0);
init_waitqueue_head(&comp_workspace_wait[i]);
}
-   return 0;
 }
 
 /*
diff --git a/fs/btrfs/compression.h b/fs/btrfs/compression.h
index a12059f..9afb0a6 100644
--- a/fs/btrfs/compression.h
+++ b/fs/btrfs/compression.h
@@ -19,7 +19,7 @@
 #ifndef __BTRFS_COMPRESSION_
 #define __BTRFS_COMPRESSION_
 
-int btrfs_init_compress(void);
+void btrfs_init_compress(void);
 void btrfs_exit_compress(void);
 
 int btrfs_compress_pages(int type, struct address_space *mapping,
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 15634d4..ece8d9f 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1238,9 +1238,7 @@ static int __init init_btrfs_fs(void)
if (err)
return err;
 
-   err = btrfs_init_compress();
-   if (err)
-   goto free_sysfs;
+   btrfs_init_compress();
 
err = btrfs_init_cachep();
if (err)
@@ -1281,8 +1279,9 @@ free_cachep:
btrfs_destroy_cachep();
 free_compress:
btrfs_exit_compress();
-free_sysfs:
+
btrfs_exit_sysfs();
+
return err;
 }
 
-- 
1.7.6

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html