From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Chinner Subject: [PATCH 0/2] splice: fix direct IO/splice deadlock Date: Wed, 28 Nov 2012 13:12:46 +1100 Message-ID: <1354068768-4316-1-git-send-email-david@fromorbit.com> Cc: xfs@oss.sgi.com To: linux-fsdevel@vger.kernel.org Return-path: Received: from ipmail04.adl6.internode.on.net ([150.101.137.141]:31029 "EHLO ipmail04.adl6.internode.on.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750889Ab2K1CNU (ORCPT ); Tue, 27 Nov 2012 21:13:20 -0500 Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Hi Folks, These two patches have been sitting in my tree for some time. I think I've even posted them before. Basically, XFS can deadlock when you use splice and direct IO on the same file concurrently because the splice write inverts the locking order of the i_mutex and the xfs inode i_iolock. The first patch moves the guts of the i_mutex protected region of the splice write to an actor function, and the second uses this structure to enable XFS to provide an actor that uses the correct locking order and hence avoid the deadlock. Comments? Cheers, Dave.