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 {  	spinlock_t		i_flags_lock;	/* inode i_flags lock */  	/* Miscellaneous state. */  	unsigned long		i_flags;	/* see defined flags below */ -	unsigned char		i_update_core;	/* timestamps/size is dirty */  	unsigned int		i_delayed_blks;	/* count of delay alloc blks */  	xfs_icdinode_t		i_d;		/* most of ondisk inode */ @@ -275,6 +274,20 @@ static inline xfs_fsize_t XFS_ISIZE(struct xfs_inode *ip)  }  /* + * If this I/O goes past the on-disk inode size update it unless it would + * be past the current in-core inode size. + */ +static inline xfs_fsize_t +xfs_new_eof(struct xfs_inode *ip, xfs_fsize_t new_size) +{ +	xfs_fsize_t i_size = i_size_read(VFS_I(ip)); + +	if (new_size > i_size) +		new_size = i_size; +	return new_size > ip->i_d.di_size ? new_size : 0; +} + +/*   * i_flags helper functions   */  static inline void @@ -422,7 +435,6 @@ static inline int xfs_isiflocked(struct xfs_inode *ip)  #define	XFS_IOLOCK_SHARED	(1<<1)  #define	XFS_ILOCK_EXCL		(1<<2)  #define	XFS_ILOCK_SHARED	(1<<3) -#define	XFS_IUNLOCK_NONOTIFY	(1<<4)  #define XFS_LOCK_MASK		(XFS_IOLOCK_EXCL | XFS_IOLOCK_SHARED \  				| XFS_ILOCK_EXCL | XFS_ILOCK_SHARED) @@ -431,8 +443,7 @@ static inline int xfs_isiflocked(struct xfs_inode *ip)  	{ XFS_IOLOCK_EXCL,	"IOLOCK_EXCL" }, \  	{ XFS_IOLOCK_SHARED,	"IOLOCK_SHARED" }, \  	{ XFS_ILOCK_EXCL,	"ILOCK_EXCL" }, \ -	{ XFS_ILOCK_SHARED,	"ILOCK_SHARED" }, \ -	{ XFS_IUNLOCK_NONOTIFY,	"IUNLOCK_NONOTIFY" } +	{ XFS_ILOCK_SHARED,	"ILOCK_SHARED" }  /* @@ -522,10 +533,6 @@ void		xfs_promote_inode(struct xfs_inode *);  void		xfs_lock_inodes(xfs_inode_t **, int, uint);  void		xfs_lock_two_inodes(xfs_inode_t *, xfs_inode_t *, uint); -void		xfs_synchronize_times(xfs_inode_t *); -void		xfs_mark_inode_dirty(xfs_inode_t *); -void		xfs_mark_inode_dirty_sync(xfs_inode_t *); -  #define IHOLD(ip) \  do { \  	ASSERT(atomic_read(&VFS_I(ip)->i_count) > 0) ; \ | 
