Re: [PATCH 10/10] fs: btrfs: Replace CURRENT_TIME by current_fs_time()

From: Deepa Dinamani
Date: Fri Feb 05 2016 - 06:39:21 EST


The kernel tester found a dereferencing NULL pointer issue with this patch.

I think this is the fix:

--- a/fs/btrfs/root-tree.c
+++ b/fs/btrfs/root-tree.c
@@ -488,7 +488,7 @@ void btrfs_update_root_times(struct
btrfs_trans_handle *trans,
struct btrfs_root *root)
{
struct btrfs_root_item *item = &root->root_item;
- struct timespec ct = current_fs_time(root->ino_cache_inode->i_sb);
+ struct timespec ct = current_fs_time(root->fs_info->sb);


I will test and re-post the patch.

-Deepa

On Thu, Feb 4, 2016 at 6:14 AM, David Sterba <dsterba@xxxxxxx> wrote:
> On Tue, Feb 02, 2016 at 10:07:50PM -0800, Deepa Dinamani wrote:
>> CURRENT_TIME macro is not appropriate for filesystems as it
>> doesn't use the right granularity for filesystem timestamps.
>> Use current_fs_time() instead.
>>
>> Signed-off-by: Deepa Dinamani <deepa.kernel@xxxxxxxxx>
>> Cc: Chris Mason <clm@xxxxxx>
>> Cc: Josef Bacik <jbacik@xxxxxx>
>> Cc: David Sterba <dsterba@xxxxxxxx>
>> Cc: linux-btrfs@xxxxxxxxxxxxxxx
>
> Reviewed-by: David Sterba <dsterba@xxxxxxxx>
>
> There's no actual change for btrfs as it uses granularity 1 which is a
> no-op and equivalent to CURRENT_TIME.