PERFORCE change 180987 for review
Zheng Liu
lz at FreeBSD.org
Thu Jul 15 11:12:46 UTC 2010
http://p4web.freebsd.org/@@180987?ac=10
Change 180987 by lz at gnehzuil-freebsd on 2010/07/15 11:12:04
Implement a ext4 cache.
Affected files ...
.. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.c#7 edit
.. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.h#5 edit
.. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_readwrite.c#8 edit
Differences ...
==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.c#7 (text+ko) ====
@@ -118,6 +118,21 @@
}
/*
+ * put a ext4_extent structure in ext4 cache.
+ */
+void
+ext4_ext_put_cache(struct inode *ip, struct ext4_extent *ep, int type)
+{
+ struct ext4_extent_cache *ecp;
+
+ ecp = &ip->i_ext_cache;
+ ecp->ec_type = type;
+ ecp->ec_blk = ep->e_blk;
+ ecp->ec_len = ep->e_len;
+ ecp->ec_start = (((daddr_t)(ep->e_start_hi) << 31) << 1) | ep->e_start_lo;
+}
+
+/*
* find a extent.
*/
struct ext4_extent_path *
==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.h#5 (text+ko) ====
@@ -94,8 +94,9 @@
struct inode;
struct m_ext2fs;
-int ext4_ext_in_cache(struct inode *, daddr_t, struct ext4_extent *);
-struct ext4_extent_path *ext4_ext_find_extent(struct m_ext2fs *fs, struct inode *,
- daddr_t, struct ext4_extent_path *);
+int ext4_ext_in_cache(struct inode *, daddr_t, struct ext4_extent *);
+void ext4_ext_put_cache(struct inode *, struct ext4_extent *, int);
+struct ext4_extent_path *ext4_ext_find_extent(struct m_ext2fs *fs, struct inode *,
+ daddr_t, struct ext4_extent_path *);
#endif /* !_FS_EXT2FS_EXT2_EXTENTS_H_ */
==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_readwrite.c#8 (text+ko) ====
@@ -122,6 +122,8 @@
if (ep == NULL)
return (EIO);
+ ext4_ext_put_cache(ip, ep, EXT4_EXT_CACHE_IN);
+
newblk = lbn - ep->e_blk +
(ep->e_start_lo | ((daddr_t)(ep->e_start_hi) << 31) << 1);
}
More information about the p4-projects
mailing list