diff options
Diffstat (limited to 'fs/xfs/xfs_inode.h')
-rw-r--r-- | fs/xfs/xfs_inode.h | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index 2f27b7454085..f123dbe6d42a 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h | |||
@@ -241,7 +241,6 @@ typedef struct xfs_inode { | |||
241 | spinlock_t i_flags_lock; /* inode i_flags lock */ | 241 | spinlock_t i_flags_lock; /* inode i_flags lock */ |
242 | /* Miscellaneous state. */ | 242 | /* Miscellaneous state. */ |
243 | unsigned long i_flags; /* see defined flags below */ | 243 | unsigned long i_flags; /* see defined flags below */ |
244 | unsigned char i_update_core; /* timestamps/size is dirty */ | ||
245 | unsigned int i_delayed_blks; /* count of delay alloc blks */ | 244 | unsigned int i_delayed_blks; /* count of delay alloc blks */ |
246 | 245 | ||
247 | xfs_icdinode_t i_d; /* most of ondisk inode */ | 246 | xfs_icdinode_t i_d; /* most of ondisk inode */ |
@@ -275,6 +274,20 @@ static inline xfs_fsize_t XFS_ISIZE(struct xfs_inode *ip) | |||
275 | } | 274 | } |
276 | 275 | ||
277 | /* | 276 | /* |
277 | * If this I/O goes past the on-disk inode size update it unless it would | ||
278 | * be past the current in-core inode size. | ||
279 | */ | ||
280 | static inline xfs_fsize_t | ||
281 | xfs_new_eof(struct xfs_inode *ip, xfs_fsize_t new_size) | ||
282 | { | ||
283 | xfs_fsize_t i_size = i_size_read(VFS_I(ip)); | ||
284 | |||
285 | if (new_size > i_size) | ||
286 | new_size = i_size; | ||
287 | return new_size > ip->i_d.di_size ? new_size : 0; | ||
288 | } | ||
289 | |||
290 | /* | ||
278 | * i_flags helper functions | 291 | * i_flags helper functions |
279 | */ | 292 | */ |
280 | static inline void | 293 | static inline void |
@@ -422,7 +435,6 @@ static inline int xfs_isiflocked(struct xfs_inode *ip) | |||
422 | #define XFS_IOLOCK_SHARED (1<<1) | 435 | #define XFS_IOLOCK_SHARED (1<<1) |
423 | #define XFS_ILOCK_EXCL (1<<2) | 436 | #define XFS_ILOCK_EXCL (1<<2) |
424 | #define XFS_ILOCK_SHARED (1<<3) | 437 | #define XFS_ILOCK_SHARED (1<<3) |
425 | #define XFS_IUNLOCK_NONOTIFY (1<<4) | ||
426 | 438 | ||
427 | #define XFS_LOCK_MASK (XFS_IOLOCK_EXCL | XFS_IOLOCK_SHARED \ | 439 | #define XFS_LOCK_MASK (XFS_IOLOCK_EXCL | XFS_IOLOCK_SHARED \ |
428 | | XFS_ILOCK_EXCL | XFS_ILOCK_SHARED) | 440 | | XFS_ILOCK_EXCL | XFS_ILOCK_SHARED) |
@@ -431,8 +443,7 @@ static inline int xfs_isiflocked(struct xfs_inode *ip) | |||
431 | { XFS_IOLOCK_EXCL, "IOLOCK_EXCL" }, \ | 443 | { XFS_IOLOCK_EXCL, "IOLOCK_EXCL" }, \ |
432 | { XFS_IOLOCK_SHARED, "IOLOCK_SHARED" }, \ | 444 | { XFS_IOLOCK_SHARED, "IOLOCK_SHARED" }, \ |
433 | { XFS_ILOCK_EXCL, "ILOCK_EXCL" }, \ | 445 | { XFS_ILOCK_EXCL, "ILOCK_EXCL" }, \ |
434 | { XFS_ILOCK_SHARED, "ILOCK_SHARED" }, \ | 446 | { XFS_ILOCK_SHARED, "ILOCK_SHARED" } |
435 | { XFS_IUNLOCK_NONOTIFY, "IUNLOCK_NONOTIFY" } | ||
436 | 447 | ||
437 | 448 | ||
438 | /* | 449 | /* |
@@ -522,10 +533,6 @@ void xfs_promote_inode(struct xfs_inode *); | |||
522 | void xfs_lock_inodes(xfs_inode_t **, int, uint); | 533 | void xfs_lock_inodes(xfs_inode_t **, int, uint); |
523 | void xfs_lock_two_inodes(xfs_inode_t *, xfs_inode_t *, uint); | 534 | void xfs_lock_two_inodes(xfs_inode_t *, xfs_inode_t *, uint); |
524 | 535 | ||
525 | void xfs_synchronize_times(xfs_inode_t *); | ||
526 | void xfs_mark_inode_dirty(xfs_inode_t *); | ||
527 | void xfs_mark_inode_dirty_sync(xfs_inode_t *); | ||
528 | |||
529 | #define IHOLD(ip) \ | 536 | #define IHOLD(ip) \ |
530 | do { \ | 537 | do { \ |
531 | ASSERT(atomic_read(&VFS_I(ip)->i_count) > 0) ; \ | 538 | ASSERT(atomic_read(&VFS_I(ip)->i_count) > 0) ; \ |