On Fri, Feb 27, 2015 at 3:25 PM, Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> wrote: > On Fri, Feb 27, 2015 at 3:16 PM, Chuck Lever <chuck.lever@xxxxxxxxxx> wrote: >> A new failure occurred with Solaris 11 server, not with the other two. >> I’ve never seen this one before. I will see if it’s reproducible. >> >> generic/207 1s ... [failed, exit status 1] - output mismatch (see /home/cel/src/xfstests/results//generic/207.out.bad) >> --- tests/generic/207.out 2014-02-13 15:40:45.204103195 -0500 >> +++ /home/cel/src/xfstests/results//generic/207.out.bad 2015-02-27 11:55:47.943262225 -0500 >> @@ -1,2 +1,2 @@ >> QA output created by 207 >> -4000 iterations of racing extensions and collection passed >> +write of 4096 bytes @16379904 finished, expected filesize at least 16384000, but got 16379904 > > Huh. I'll look into this. I suspect this is because we're performing the comparison against inode->i_size outside the inode->i_lock spinlock in nfs_writeback_check_extend(). That means that another earlier write which also extends the file could in theory race, set a higher value for the barrier, and "win". In order to fix this, we want to perform the above test and then update inode->i_size without dropping the spinlock. -- Trond Myklebust Linux NFS client maintainer, PrimaryData trond.myklebust@xxxxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html