Hi folks, 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... Cheers, Dave. _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs