Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
[pandora-kernel.git] / fs / xfs / xfs_trans_priv.h
index aa58535..73e2ad3 100644 (file)
@@ -79,17 +79,21 @@ struct xfs_ail {
        struct task_struct      *xa_task;
        xfs_lsn_t               xa_target;
        struct xfs_ail_cursor   xa_cursors;
+       spinlock_t              xa_lock;
 };
 
 /*
  * From xfs_trans_ail.c
  */
-void                   xfs_trans_update_ail(struct xfs_mount *mp,
-                                    struct xfs_log_item *lip, xfs_lsn_t lsn)
-                                    __releases(mp->m_ail_lock);
-void                   xfs_trans_delete_ail(struct xfs_mount *mp,
-                                    struct xfs_log_item *lip)
-                                    __releases(mp->m_ail_lock);
+void                   xfs_trans_ail_update(struct xfs_ail *ailp,
+                                       struct xfs_log_item *lip, xfs_lsn_t lsn)
+                                       __releases(ailp->xa_lock);
+void                   xfs_trans_ail_delete(struct xfs_ail *ailp,
+                                       struct xfs_log_item *lip)
+                                       __releases(ailp->xa_lock);
+void                   xfs_trans_ail_push(struct xfs_ail *, xfs_lsn_t);
+void                   xfs_trans_unlocked_item(struct xfs_ail *,
+                                       xfs_log_item_t *);
 
 xfs_lsn_t              xfs_trans_ail_tail(struct xfs_ail *ailp);
 
@@ -106,4 +110,27 @@ void       xfsaild_wakeup(struct xfs_ail *, xfs_lsn_t);
 int    xfsaild_start(struct xfs_ail *);
 void   xfsaild_stop(struct xfs_ail *);
 
+#if BITS_PER_LONG != 64
+static inline void
+xfs_trans_ail_copy_lsn(
+       struct xfs_ail  *ailp,
+       xfs_lsn_t       *dst,
+       xfs_lsn_t       *src)
+{
+       ASSERT(sizeof(xfs_lsn_t) == 8); /* don't lock if it shrinks */
+       spin_lock(&ailp->xa_lock);
+       *dst = *src;
+       spin_unlock(&ailp->xa_lock);
+}
+#else
+static inline void
+xfs_trans_ail_copy_lsn(
+       struct xfs_ail  *ailp,
+       xfs_lsn_t       *dst,
+       xfs_lsn_t       *src)
+{
+       ASSERT(sizeof(xfs_lsn_t) == 8);
+       *dst = *src;
+}
+#endif
 #endif /* __XFS_TRANS_PRIV_H__ */