From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Koss Subject: Re: fragmentation && blocks "realloc" Date: Fri, 20 Jan 2006 22:22:55 +0300 Message-ID: References: <1137764093.15107.33.camel@imp.csi.cam.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT Cc: kernelnewbies@nl.linux.org, linux-fsdevel@vger.kernel.org Return-path: Received: from uproxy.gmail.com ([66.249.92.203]:13140 "EHLO uproxy.gmail.com") by vger.kernel.org with ESMTP id S1750803AbWATTW5 convert rfc822-to-8bit (ORCPT ); Fri, 20 Jan 2006 14:22:57 -0500 Received: by uproxy.gmail.com with SMTP id s2so38189uge for ; Fri, 20 Jan 2006 11:22:55 -0800 (PST) To: Anton Altaparmakov In-Reply-To: Content-Disposition: inline Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org In comparison with this > bh = sb_bread(sb, oldblock); > if (!bh) > goto err; > bh->b_blocknr = newblk; > mark_buffer_dirty (bh); > unmap_underlying_metadata(bh->b_bdev, bh->b_blocknr); > this code like this didn't cause any "warrnings": struct buffer_head *newbh; bh = sb_bread(sb, oldblock); newbh = sb_bread(sb, newblock); if (!(bh || newbh)) goto err; memcpy(newbh->b_data, bh->b_data, sb->s_blocksize); mark_buffer_dirty(newbh); brelse(bh); brelse(newbh); invalidate_inode_buffers(inode); but it didn't optimal, much better what you suggest, but...