From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Day Subject: Re: fuse: fix hang on SMP Date: Tue, 17 Oct 2006 08:53:50 -0400 Message-ID: <20061017125350.GA22327@silverwood.ncultra.org> References: <20061016162709.369579000@szeredi.hu> <20061016162729.176738000@szeredi.hu> <20061016165125.4605824b.akpm@osdl.org> Reply-To: ncmike@ncultra.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="2fHTh5uZTiUOsy+g" Cc: Miklos Szeredi , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org Return-path: Received: from wx-out-0506.google.com ([66.249.82.232]:30607 "EHLO wx-out-0506.google.com") by vger.kernel.org with ESMTP id S1750838AbWJQMxw (ORCPT ); Tue, 17 Oct 2006 08:53:52 -0400 Received: by wx-out-0506.google.com with SMTP id h28so2204579wxd for ; Tue, 17 Oct 2006 05:53:51 -0700 (PDT) To: Andrew Morton Content-Disposition: inline In-Reply-To: <20061016165125.4605824b.akpm@osdl.org> Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org --2fHTh5uZTiUOsy+g Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On 16/10/06 16:51 -0700, Andrew Morton wrote: >On Mon, 16 Oct 2006 18:27:10 +0200 >Miklos Szeredi wrote: > >> Fuse didn't always call i_size_write() with i_mutex held which caused >> rare hangs on SMP/32bit. > >Yes, that is a bit of a trap. I'll maintain a patch in -mm which spits a >warning if i_size_write() is called without i_mutex held. > >+void i_size_write(struct inode *inode, loff_t i_size) >+{ >+ WARN_ON_ONCE(!mutex_is_locked(&inode->i_mutex)); Miklos' patch would generate this warning because he uses the spinlock inside struct fuse_conn to synchronize the write: +static void fuse_vmtruncate(struct inode *inode, loff_t offset) +{ + struct fuse_conn *fc =3D get_fuse_conn(inode); + int need_trunc; + + spin_lock(&fc->lock); + need_trunc =3D inode->i_size > offset; + i_size_write(inode, offset); + spin_unlock(&fc->lock); --=20 Mike D. Day IBM LTC Cell: 919 412-3900 Sametime: ncmike@us.ibm.com AIM: ncmikeday Yahoo: ultra.runner PGP key: http://www.ncultra.org/ncmike/pubkey.asc --2fHTh5uZTiUOsy+g Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQFFNNJeOycxVEUrfCERAtjeAJ4iV7gCDENajGV/7RyYqntPqllnJgCcDV7J /5mG4g3xHUHs875Gzr27zGo= =1S0z -----END PGP SIGNATURE----- --2fHTh5uZTiUOsy+g--