Re: [PATCH 18/42] btrfs: move the dio_sem higher up the callchain

2018-10-18 Thread David Sterba
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

[PATCH 18/42] btrfs: move the dio_sem higher up the callchain

2018-10-12 Thread Josef Bacik
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

[PATCH 18/42] btrfs: move the dio_sem higher up the callchain

2018-10-11 Thread Josef Bacik
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

Re: [PATCH 18/42] btrfs: move the dio_sem higher up the callchain

2018-10-03 Thread Filipe Manana
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.

Re: [PATCH 18/42] btrfs: move the dio_sem higher up the callchain

2018-10-03 Thread David Sterba
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

[PATCH 18/42] btrfs: move the dio_sem higher up the callchain

2018-09-28 Thread Josef Bacik
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 +++