Re: [BUG REPORT] Kernel panic on 3.9.0-rc7-4-gbb33db7
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
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
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
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
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
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
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