]> Pileus Git - ~andy/linux/blobdiff - fs/btrfs/btrfs_inode.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[~andy/linux] / fs / btrfs / btrfs_inode.h
index 5b2ad6bc4fe7f18ca8038052d26db5afb2b6c6c6..ed8ca7ca5eff2d2ce0529f42d32fb394b0331e89 100644 (file)
@@ -38,6 +38,7 @@
 #define BTRFS_INODE_DELALLOC_META_RESERVED     4
 #define BTRFS_INODE_HAS_ORPHAN_ITEM            5
 #define BTRFS_INODE_HAS_ASYNC_EXTENT           6
+#define BTRFS_INODE_NEEDS_FULL_SYNC            7
 
 /* in memory btrfs inode */
 struct btrfs_inode {
@@ -143,6 +144,9 @@ struct btrfs_inode {
        /* flags field from the on disk inode */
        u32 flags;
 
+       /* a local copy of root's last_log_commit */
+       unsigned long last_log_commit;
+
        /*
         * Counters to keep track of the number of extent item's we may use due
         * to delalloc and such.  outstanding_extents is the number of extent
@@ -202,15 +206,10 @@ static inline bool btrfs_is_free_space_inode(struct inode *inode)
 
 static inline int btrfs_inode_in_log(struct inode *inode, u64 generation)
 {
-       struct btrfs_root *root = BTRFS_I(inode)->root;
-       int ret = 0;
-
-       mutex_lock(&root->log_mutex);
        if (BTRFS_I(inode)->logged_trans == generation &&
-           BTRFS_I(inode)->last_sub_trans <= root->last_log_commit)
-               ret = 1;
-       mutex_unlock(&root->log_mutex);
-       return ret;
+           BTRFS_I(inode)->last_sub_trans <= BTRFS_I(inode)->last_log_commit)
+               return 1;
+       return 0;
 }
 
 #endif