Re: [PATCH 2/4] Btrfs: just free dummy extent buffers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 17, 2015 at 04:38:01PM -0400, Josef Bacik wrote:
> If we fail during our sanity tests we could get NULL deref's because we unload
> the module before the dummy extent buffers are free'd via RCU.  So check for
> this case and just free the things directly.  Thanks,
> 
> Signed-off-by: Josef Bacik <jbacik@xxxxxx>
> ---
>  fs/btrfs/extent_io.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
> index 29850d4..d13cead 100644
> --- a/fs/btrfs/extent_io.c
> +++ b/fs/btrfs/extent_io.c
> @@ -4968,6 +4968,12 @@ static int release_extent_buffer(struct extent_buffer *eb)
>  
>  		/* Should be safe to release our pages at this point */
>  		btrfs_release_extent_buffer_page(eb);
> +#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS

Please use btrfs_test_is_dummy_root, it's there to avoid the #ifdefs

> +		if (unlikely(test_bit(EXTENT_BUFFER_DUMMY, &eb->bflags))) {
> +			__free_extent_buffer(eb);
> +			return 1;
> +		}
> +#endif
>  		call_rcu(&eb->rcu_head, btrfs_release_extent_buffer_rcu);
>  		return 1;
>  	}
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux