On Fri, Oct 12, 2018 at 03:32:32PM -0400, Josef Bacik wrote:
> --- a/fs/btrfs/tree-log.c
> +++ b/fs/btrfs/tree-log.c
> @@ -4374,7 +4374,6 @@ static int btrfs_log_changed_extents(struct
> btrfs_trans_handle *trans,
>
> INIT_LIST_HEAD(&extents);
>
> - down_write(&inode->dio_sem);
I'll
We're getting a lockdep splat because we take the dio_sem under the
log_mutex. What we really need is to protect fsync() from logging an
extent map for an extent we never waited on higher up, so just guard the
whole thing with dio_sem.
==
WARNIN
We're getting a lockdep splat because we take the dio_sem under the
log_mutex. What we really need is to protect fsync() from logging an
extent map for an extent we never waited on higher up, so just guard the
whole thing with dio_sem.
==
WARNIN
On Fri, Sep 28, 2018 at 12:19 PM Josef Bacik wrote:
>
> We're getting a lockdep splat because we take the dio_sem under the
> log_mutex. What we really need is to protect fsync() from logging an
> extent map for an extent we never waited on higher up, so just guard the
> whole thing with dio_sem.
On Fri, Sep 28, 2018 at 07:17:57AM -0400, Josef Bacik wrote:
> We're getting a lockdep splat because we take the dio_sem under the
Can you please add the important bits of the lockdep warning to the
changelog? And possibly reference to the test or workload that triggers
that.
> log_mutex. What w
We're getting a lockdep splat because we take the dio_sem under the
log_mutex. What we really need is to protect fsync() from logging an
extent map for an extent we never waited on higher up, so just guard the
whole thing with dio_sem.
Signed-off-by: Josef Bacik
---
fs/btrfs/file.c | 12 +++