Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 145015
b: refs/heads/master
c: 2ec0ae3
h: refs/heads/master
i:
  145013: e7f5c02
  145011: edae969
  145007: a7d1391
v: v3
  • Loading branch information
Theodore Ts'o committed May 15, 2009
1 parent f328acd commit 9d4a26a
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2a8964d63d50dd2d65d71d342bc7fb6ef4117614
refs/heads/master: 2ec0ae3acec47f628179ee95fe2c4da01b5e9fc4
17 changes: 12 additions & 5 deletions trunk/fs/ext4/extents.c
Original file line number Diff line number Diff line change
Expand Up @@ -1841,11 +1841,13 @@ ext4_ext_put_in_cache(struct inode *inode, ext4_lblk_t block,
{
struct ext4_ext_cache *cex;
BUG_ON(len == 0);
spin_lock(&EXT4_I(inode)->i_block_reservation_lock);
cex = &EXT4_I(inode)->i_cached_extent;
cex->ec_type = type;
cex->ec_block = block;
cex->ec_len = len;
cex->ec_start = start;
spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
}

/*
Expand Down Expand Up @@ -1902,12 +1904,17 @@ ext4_ext_in_cache(struct inode *inode, ext4_lblk_t block,
struct ext4_extent *ex)
{
struct ext4_ext_cache *cex;
int ret = EXT4_EXT_CACHE_NO;

/*
* We borrow i_block_reservation_lock to protect i_cached_extent
*/
spin_lock(&EXT4_I(inode)->i_block_reservation_lock);
cex = &EXT4_I(inode)->i_cached_extent;

/* has cache valid data? */
if (cex->ec_type == EXT4_EXT_CACHE_NO)
return EXT4_EXT_CACHE_NO;
goto errout;

BUG_ON(cex->ec_type != EXT4_EXT_CACHE_GAP &&
cex->ec_type != EXT4_EXT_CACHE_EXTENT);
Expand All @@ -1918,11 +1925,11 @@ ext4_ext_in_cache(struct inode *inode, ext4_lblk_t block,
ext_debug("%u cached by %u:%u:%llu\n",
block,
cex->ec_block, cex->ec_len, cex->ec_start);
return cex->ec_type;
ret = cex->ec_type;
}

/* not in cache */
return EXT4_EXT_CACHE_NO;
errout:
spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
return ret;
}

/*
Expand Down

0 comments on commit 9d4a26a

Please sign in to comment.