Hi Dave, On Fri, Oct 05, 2012 at 11:06:57AM +1000, Dave Chinner wrote: > This is a followup from the last conversation with Mark about this > deadlock. I haven't heard anything in the last coupl eof days, so I > figured I'd just write the patches that did what I thought is > needed. > > Basically, the stack switch is only needed for userdata in the > delayed allocation path, and nowhere else at this point in time. To > make it so we switch stacks only at this point in time, I introduced > a flag to pass to xfs_bmapi_write(). This means we don't switch > stacks during direct IO, unwritten extent conversion or > preallocation via fallocate/XFS_IOC_RESVSP. > > I then moved the stack switch to xfs_bmapi_allocate(), which is > where allocation happens. All the allocation calls within a single > userdata extent allocation occur in this function (both data extent > and bmap btree blocks), so switching stacks here will ensure that > only mapping calls that require allocation will have the stack > switched. > > Comments welcome... These two patches have been committed to git://oss.sgi.com/xfs/xfs.git, master and for-next branches. Regards, Ben _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs