On Thu, Jan 08, 2015 at 09:52:30PM +1100, Chris Samuel wrote:
> Sorry for the delay, took a while to poke around the code to figure
> out possible ways it would get done (and what the right structure was).

No delay noticed :)

> > Set the otime in btrfs_new_inode after the call to fill_inode_item.
> Unfortunately I won't have a test system to try this on for a little while.
> 
> 
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index e687bb0..60bcc72 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -5835,6 +5835,11 @@ static struct inode *btrfs_new_inode(struct 
> btrfs_trans_handle *trans,
>                              sizeof(*inode_item));
>         fill_inode_item(trans, path->nodes[0], inode_item, inode);
>  
> +       /*
> +        * Set the creation time on the inode.
> +        */
> +       btrfs_set_stack_timespec_sec( &inode.otime, cur_time.tv_sec );

Drop the spaces after/before parens and also set usec the same way.
There's no such thing as 'current_time', only CURRENT_TIME but that
cannot be used directly as a structure.

Given that the mtime is set a few lines above, copy the tv_sec and
tv_usec from there.

> +
>         if (name) {
>                 ref = btrfs_item_ptr(path->nodes[0], path->slots[0] + 1,
>                                      struct btrfs_inode_ref);
> 
--
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

Reply via email to