From patchwork Thu Feb 11 07:43:00 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaohua Li X-Patchwork-Id: 78649 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o1B7h8gu030191 for ; Thu, 11 Feb 2010 07:43:08 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752271Ab0BKHnH (ORCPT ); Thu, 11 Feb 2010 02:43:07 -0500 Received: from mga02.intel.com ([134.134.136.20]:4734 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752249Ab0BKHnG (ORCPT ); Thu, 11 Feb 2010 02:43:06 -0500 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP; 10 Feb 2010 23:41:12 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.49,450,1262592000"; d="scan'208";a="491568935" Received: from sli10-conroe.sh.intel.com (HELO sli10-desk.sh.intel.com) ([10.239.13.164]) by orsmga002.jf.intel.com with ESMTP; 10 Feb 2010 23:42:39 -0800 Received: from david by sli10-desk.sh.intel.com with local (Exim 4.69) (envelope-from ) id 1NfThU-00025r-PB; Thu, 11 Feb 2010 15:43:00 +0800 Date: Thu, 11 Feb 2010 15:43:00 +0800 From: Shaohua Li To: chris.mason@oracle.com, linux-btrfs@vger.kernel.org Cc: zheng.yan@oracle.com Subject: [PATCH] btrfs: btrfs_mark_extent_written writes correctly slot Message-ID: <20100211074300.GA7469@sli10-desk.sh.intel.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Thu, 11 Feb 2010 07:43:09 +0000 (UTC) diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 9d08096..6ed434a 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -720,13 +720,15 @@ again: inode->i_ino, orig_offset); BUG_ON(ret); } - fi = btrfs_item_ptr(leaf, path->slots[0], - struct btrfs_file_extent_item); if (del_nr == 0) { + fi = btrfs_item_ptr(leaf, path->slots[0], + struct btrfs_file_extent_item); btrfs_set_file_extent_type(leaf, fi, BTRFS_FILE_EXTENT_REG); btrfs_mark_buffer_dirty(leaf); } else { + fi = btrfs_item_ptr(leaf, del_slot - 1, + struct btrfs_file_extent_item); btrfs_set_file_extent_type(leaf, fi, BTRFS_FILE_EXTENT_REG); btrfs_set_file_extent_num_bytes(leaf, fi,