{
u64 ip_blkno;
- struct ocfs2_lock_res ip_meta_lockres;
- struct ocfs2_lock_res ip_data_lockres;
+ struct ocfs2_lock_res ip_rw_lockres;
+ struct ocfs2_lock_res ip_meta_lockres;
+ struct ocfs2_lock_res ip_data_lockres;
/* protects allocation changes on this inode. */
- struct rw_semaphore ip_alloc_sem;
+ struct rw_semaphore ip_alloc_sem;
/* These fields are protected by ip_lock */
- spinlock_t ip_lock;
- u32 ip_open_count;
- u32 ip_clusters;
- loff_t ip_mmu_private;
- struct ocfs2_extent_map ip_map;
- struct list_head ip_io_markers;
- int ip_orphaned_slot;
+ spinlock_t ip_lock;
+ u32 ip_open_count;
+ u32 ip_clusters;
+ struct ocfs2_extent_map ip_map;
+ struct list_head ip_io_markers;
+ int ip_orphaned_slot;
- struct semaphore ip_io_sem;
+ struct mutex ip_io_mutex;
/* Used by the journalling code to attach an inode to a
- * handle. These are protected by ip_io_sem in order to lock
+ * handle. These are protected by ip_io_mutex in order to lock
* out other I/O to the inode until we either commit or
* abort. */
- struct list_head ip_handle_list;
+ struct list_head ip_handle_list;
struct ocfs2_journal_handle *ip_handle;
- u32 ip_flags; /* see below */
+ u32 ip_flags; /* see below */
/* protected by recovery_lock. */
- struct inode *ip_next_orphan;
+ struct inode *ip_next_orphan;
- u32 ip_dir_start_lookup;
+ u32 ip_dir_start_lookup;
/* next two are protected by trans_inc_lock */
/* which transaction were we created on? Zero if none. */
- unsigned long ip_created_trans;
+ unsigned long ip_created_trans;
/* last transaction we were a part of. */
- unsigned long ip_last_trans;
+ unsigned long ip_last_trans;
struct ocfs2_caching_info ip_metadata_cache;
- struct inode vfs_inode;
+ struct inode vfs_inode;
};
/*