From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kara Subject: Re: [PATCH 1/2 linux-next] Revert "ufs: fix deadlocks introduced by sb mutex merge" Date: Wed, 17 Jun 2015 10:57:15 +0200 Message-ID: <20150617085715.GC1614__46081.9021719091$1434532188$gmane$org@quack.suse.cz> References: <1432754131-27425-1-git-send-email-fabf@skynet.be> <20150527145735.e3d1913bc66426038d53be32@linux-foundation.org> <20150604050123.GL7232@ZenIV.linux.org.uk> <1122467636.634568.1433521621076.open-xchange@webmail.nmp.proximus.be> <20150605185018.GX7232@ZenIV.linux.org.uk> <20150605220348.GA14402@ZenIV.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <20150605220348.GA14402@ZenIV.linux.org.uk> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Al Viro Cc: Jan Kara , Ian Campbell , Ian Jackson , xen-devel , Fabian Frederick , linux-fsdevel@vger.kernel.org, Evgeniy Dushistov , Andrew Morton , Alexey Khoroshilov , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org On Fri 05-06-15 23:03:48, Al Viro wrote: > On Fri, Jun 05, 2015 at 07:50:18PM +0100, Al Viro wrote: > > Basically, we have > > i_mutex: file size changes, contents-affecting syscalls. Per-inode. > > truncate_mutex: block pointers changes. Per-inode. > > s_lock: block and inode bitmaps changes. Per-filesystem. > > > > For UFS it's slightly more complicated due to tail packing they are doing for > > short files, but most of that complexity is due to having that stuff handled > > way too deep in call chain. > > Oh, lovely... commit 10e5dc > Author: Evgeniy Dushistov > Date: Sat Jul 1 04:36:24 2006 -0700 > > [PATCH] ufs: truncate should allocate block for last byte > > had removed ->truncate() method and missed the fact that vmtrucate() had > callers outside of ->setattr(), such as handling of ->prepare_write() partial > failures and short copies on write(2) in general. > > Then we had a long and convoluted series of conversions that ended up with > vmtruncate() lifted into ufs_write_failed() and replaced with > truncate_pagecache() in there. > > Through all that, everybody (me included) had not noticed that we *still* > do not free blocks allocated by ufs_write_begin() failing halfway through. > While we are at it, ufs_write_end() ought to call ufs_write_failed() in > case when we'd been called after a short copy (and do the same block freeing). > > Joy... Folks, is anybody actively maintaining fs/ufs these days? Looking into the changelog there wasn't anyone seriously looking into UFS for at least 5-6 years... Fabian did some cleanups recently but they were mostly cosmetic. So I don't think it's really maintained. OTOH clearly there are some users since occasionally someone comes with a bug report. Welcome to the world where we have ~50 on disk / network filesystems :-| Honza -- Jan Kara SUSE Labs, CR