public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] xfs: kill m_maxioffset
@ 2012-06-08  5:44 Dave Chinner
  2012-06-08  5:44 ` [PATCH 1/2] xfs: m_maxioffset is redundant Dave Chinner
  2012-06-08  5:44 ` [PATCH 2/2] xfs: make largest supported offset less shouty Dave Chinner
  0 siblings, 2 replies; 5+ messages in thread
From: Dave Chinner @ 2012-06-08  5:44 UTC (permalink / raw)
  To: xfs

This patchset cleans up the largest supported offset checks. That
information is at the VFS level, so we don't need to keep duplicates
in the struct xfs_mount, nor do we need a macro to access it.

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] xfs: m_maxioffset is redundant
  2012-06-08  5:44 [PATCH 0/2] xfs: kill m_maxioffset Dave Chinner
@ 2012-06-08  5:44 ` Dave Chinner
  2012-06-08 14:02   ` Eric Sandeen
  2012-06-08  5:44 ` [PATCH 2/2] xfs: make largest supported offset less shouty Dave Chinner
  1 sibling, 1 reply; 5+ messages in thread
From: Dave Chinner @ 2012-06-08  5:44 UTC (permalink / raw)
  To: xfs

From: Dave Chinner <dchinner@redhat.com>

The m_maxioffset field in the struct xfs_mount contains the same
value as the superblock s_maxbytes field. There is no need to carry
two copies of this limit around, so use the VFS superblock version.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
 fs/xfs/xfs_aops.c  |   12 ++++++------
 fs/xfs/xfs_iomap.c |    4 ++--
 fs/xfs/xfs_mount.c |    2 --
 fs/xfs/xfs_mount.h |    3 +--
 4 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index a1295e5..5f7de20 100644
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -323,10 +323,10 @@ xfs_map_blocks(
 
 	ASSERT(ip->i_d.di_format != XFS_DINODE_FMT_BTREE ||
 	       (ip->i_df.if_flags & XFS_IFEXTENTS));
-	ASSERT(offset <= mp->m_maxioffset);
+	ASSERT(offset <= mp->m_super->s_maxbytes);
 
-	if (offset + count > mp->m_maxioffset)
-		count = mp->m_maxioffset - offset;
+	if (offset + count > mp->m_super->s_maxbytes)
+		count = mp->m_super->s_maxbytes - offset;
 	end_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)offset + count);
 	offset_fsb = XFS_B_TO_FSBT(mp, offset);
 	error = xfs_bmapi_read(ip, offset_fsb, end_fsb - offset_fsb,
@@ -1156,9 +1156,9 @@ __xfs_get_blocks(
 		lockmode = xfs_ilock_map_shared(ip);
 	}
 
-	ASSERT(offset <= mp->m_maxioffset);
-	if (offset + size > mp->m_maxioffset)
-		size = mp->m_maxioffset - offset;
+	ASSERT(offset <= mp->m_super->s_maxbytes);
+	if (offset + size > mp->m_super->s_maxbytes)
+		size = mp->m_super->s_maxbytes - offset;
 	end_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)offset + size);
 	offset_fsb = XFS_B_TO_FSBT(mp, offset);
 
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
index aadfce6..4590cd1 100644
--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
@@ -416,8 +416,8 @@ retry:
 	 * Make sure preallocation does not create extents beyond the range we
 	 * actually support in this filesystem.
 	 */
-	if (last_fsb > XFS_B_TO_FSB(mp, mp->m_maxioffset))
-		last_fsb = XFS_B_TO_FSB(mp, mp->m_maxioffset);
+	if (last_fsb > XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes))
+		last_fsb = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);
 
 	ASSERT(last_fsb > offset_fsb);
 
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index 536021f..9536fd1 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -1200,8 +1200,6 @@ xfs_mountfs(
 
 	xfs_set_maxicount(mp);
 
-	mp->m_maxioffset = xfs_max_file_offset(sbp->sb_blocklog);
-
 	error = xfs_uuid_mount(mp);
 	if (error)
 		goto out;
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index 8b89c5a..47c6b3b 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
@@ -176,7 +176,6 @@ typedef struct xfs_mount {
 	uint			m_qflags;	/* quota status flags */
 	xfs_trans_reservations_t m_reservations;/* precomputed res values */
 	__uint64_t		m_maxicount;	/* maximum inode count */
-	__uint64_t		m_maxioffset;	/* maximum inode offset */
 	__uint64_t		m_resblks;	/* total reserved blocks */
 	__uint64_t		m_resblks_avail;/* available reserved blocks */
 	__uint64_t		m_resblks_save;	/* reserved blks @ remount,ro */
@@ -297,7 +296,7 @@ xfs_preferred_iosize(xfs_mount_t *mp)
 			PAGE_CACHE_SIZE));
 }
 
-#define XFS_MAXIOFFSET(mp)	((mp)->m_maxioffset)
+#define XFS_MAXIOFFSET(mp)	((mp)->m_super->s_maxbytes)
 
 #define XFS_LAST_UNMOUNT_WAS_CLEAN(mp)	\
 				((mp)->m_flags & XFS_MOUNT_WAS_CLEAN)
-- 
1.7.10

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] xfs: make largest supported offset less shouty
  2012-06-08  5:44 [PATCH 0/2] xfs: kill m_maxioffset Dave Chinner
  2012-06-08  5:44 ` [PATCH 1/2] xfs: m_maxioffset is redundant Dave Chinner
@ 2012-06-08  5:44 ` Dave Chinner
  2012-06-08 14:08   ` Eric Sandeen
  1 sibling, 1 reply; 5+ messages in thread
From: Dave Chinner @ 2012-06-08  5:44 UTC (permalink / raw)
  To: xfs

From: Dave Chinner <dchinner@redhat.com>

XFS_MAXIOFFSET() is just a simple macro that resolves to
mp->m_maxioffset. It doesn't need to exist, and it just makes the
code unnecessarily loud and shouty.

Make it quiet and easy to read.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
 fs/xfs/xfs_bmap.c     |    2 +-
 fs/xfs/xfs_file.c     |    2 +-
 fs/xfs/xfs_inode.c    |    2 +-
 fs/xfs/xfs_iomap.c    |    2 +-
 fs/xfs/xfs_mount.h    |    2 --
 fs/xfs/xfs_qm.c       |    2 +-
 fs/xfs/xfs_vnodeops.c |   10 +++++-----
 7 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
index 58b815e..848ffa7 100644
--- a/fs/xfs/xfs_bmap.c
+++ b/fs/xfs/xfs_bmap.c
@@ -5517,7 +5517,7 @@ xfs_getbmap(
 		if (xfs_get_extsz_hint(ip) ||
 		    ip->i_d.di_flags & (XFS_DIFLAG_PREALLOC|XFS_DIFLAG_APPEND)){
 			prealloced = 1;
-			fixlen = XFS_MAXIOFFSET(mp);
+			fixlen = mp->m_super->s_maxbytes;
 		} else {
 			prealloced = 0;
 			fixlen = XFS_ISIZE(ip);
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index 2b18ea1..bcb97dc 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -273,7 +273,7 @@ xfs_file_aio_read(
 		}
 	}
 
-	n = XFS_MAXIOFFSET(mp) - iocb->ki_pos;
+	n = mp->m_super->s_maxbytes - iocb->ki_pos;
 	if (n <= 0 || size == 0)
 		return 0;
 
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 5c6ea39..fa49d80 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -1225,7 +1225,7 @@ xfs_itruncate_extents(
 	 * then there is nothing to do.
 	 */
 	first_unmap_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)new_size);
-	last_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp));
+	last_block = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);
 	if (first_unmap_block == last_block)
 		return 0;
 
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
index 4590cd1..915edf6 100644
--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
@@ -285,7 +285,7 @@ xfs_iomap_eof_want_preallocate(
 	 * do any speculative allocation.
 	 */
 	start_fsb = XFS_B_TO_FSBT(mp, ((xfs_ufsize_t)(offset + count - 1)));
-	count_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp));
+	count_fsb = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);
 	while (count_fsb > 0) {
 		imaps = nimaps;
 		firstblock = NULLFSBLOCK;
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index 47c6b3b..90a4530 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
@@ -296,8 +296,6 @@ xfs_preferred_iosize(xfs_mount_t *mp)
 			PAGE_CACHE_SIZE));
 }
 
-#define XFS_MAXIOFFSET(mp)	((mp)->m_super->s_maxbytes)
-
 #define XFS_LAST_UNMOUNT_WAS_CLEAN(mp)	\
 				((mp)->m_flags & XFS_MOUNT_WAS_CLEAN)
 #define XFS_FORCED_SHUTDOWN(mp)	((mp)->m_flags & XFS_MOUNT_FS_SHUTDOWN)
diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
index 249db19..2e86fa0 100644
--- a/fs/xfs/xfs_qm.c
+++ b/fs/xfs/xfs_qm.c
@@ -940,7 +940,7 @@ xfs_qm_dqiterate(
 	map = kmem_alloc(XFS_DQITER_MAP_SIZE * sizeof(*map), KM_SLEEP);
 
 	lblkno = 0;
-	maxlblkcnt = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp));
+	maxlblkcnt = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);
 	do {
 		nmaps = XFS_DQITER_MAP_SIZE;
 		/*
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index b6a82d8..c22f4e0 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -174,7 +174,7 @@ xfs_free_eofblocks(
 	 * of the file.  If not, then there is nothing to do.
 	 */
 	end_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_ISIZE(ip));
-	last_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp));
+	last_fsb = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);
 	if (last_fsb <= end_fsb)
 		return 0;
 	map_len = last_fsb - end_fsb;
@@ -2262,10 +2262,10 @@ xfs_change_file_space(
 
 	llen = bf->l_len > 0 ? bf->l_len - 1 : bf->l_len;
 
-	if (   (bf->l_start < 0)
-	    || (bf->l_start > XFS_MAXIOFFSET(mp))
-	    || (bf->l_start + llen < 0)
-	    || (bf->l_start + llen > XFS_MAXIOFFSET(mp)))
+	if (bf->l_start < 0 ||
+	    bf->l_start > mp->m_super->s_maxbytes ||
+	    bf->l_start + llen < 0 ||
+	    bf->l_start + llen > mp->m_super->s_maxbytes)
 		return XFS_ERROR(EINVAL);
 
 	bf->l_whence = 0;
-- 
1.7.10

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] xfs: m_maxioffset is redundant
  2012-06-08  5:44 ` [PATCH 1/2] xfs: m_maxioffset is redundant Dave Chinner
@ 2012-06-08 14:02   ` Eric Sandeen
  0 siblings, 0 replies; 5+ messages in thread
From: Eric Sandeen @ 2012-06-08 14:02 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs

On 6/8/12 12:44 AM, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
> 
> The m_maxioffset field in the struct xfs_mount contains the same
> value as the superblock s_maxbytes field. There is no need to carry
> two copies of this limit around, so use the VFS superblock version.
> 
> Signed-off-by: Dave Chinner <dchinner@redhat.com>

Looks fine to me.

Reviewed-by: Eric Sandeen <sandeen@redhat.com>

> ---
>  fs/xfs/xfs_aops.c  |   12 ++++++------
>  fs/xfs/xfs_iomap.c |    4 ++--
>  fs/xfs/xfs_mount.c |    2 --
>  fs/xfs/xfs_mount.h |    3 +--
>  4 files changed, 9 insertions(+), 12 deletions(-)
> 
> diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
> index a1295e5..5f7de20 100644
> --- a/fs/xfs/xfs_aops.c
> +++ b/fs/xfs/xfs_aops.c
> @@ -323,10 +323,10 @@ xfs_map_blocks(
>  
>  	ASSERT(ip->i_d.di_format != XFS_DINODE_FMT_BTREE ||
>  	       (ip->i_df.if_flags & XFS_IFEXTENTS));
> -	ASSERT(offset <= mp->m_maxioffset);
> +	ASSERT(offset <= mp->m_super->s_maxbytes);
>  
> -	if (offset + count > mp->m_maxioffset)
> -		count = mp->m_maxioffset - offset;
> +	if (offset + count > mp->m_super->s_maxbytes)
> +		count = mp->m_super->s_maxbytes - offset;
>  	end_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)offset + count);
>  	offset_fsb = XFS_B_TO_FSBT(mp, offset);
>  	error = xfs_bmapi_read(ip, offset_fsb, end_fsb - offset_fsb,
> @@ -1156,9 +1156,9 @@ __xfs_get_blocks(
>  		lockmode = xfs_ilock_map_shared(ip);
>  	}
>  
> -	ASSERT(offset <= mp->m_maxioffset);
> -	if (offset + size > mp->m_maxioffset)
> -		size = mp->m_maxioffset - offset;
> +	ASSERT(offset <= mp->m_super->s_maxbytes);
> +	if (offset + size > mp->m_super->s_maxbytes)
> +		size = mp->m_super->s_maxbytes - offset;
>  	end_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)offset + size);
>  	offset_fsb = XFS_B_TO_FSBT(mp, offset);
>  
> diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
> index aadfce6..4590cd1 100644
> --- a/fs/xfs/xfs_iomap.c
> +++ b/fs/xfs/xfs_iomap.c
> @@ -416,8 +416,8 @@ retry:
>  	 * Make sure preallocation does not create extents beyond the range we
>  	 * actually support in this filesystem.
>  	 */
> -	if (last_fsb > XFS_B_TO_FSB(mp, mp->m_maxioffset))
> -		last_fsb = XFS_B_TO_FSB(mp, mp->m_maxioffset);
> +	if (last_fsb > XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes))
> +		last_fsb = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);
>  
>  	ASSERT(last_fsb > offset_fsb);
>  
> diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
> index 536021f..9536fd1 100644
> --- a/fs/xfs/xfs_mount.c
> +++ b/fs/xfs/xfs_mount.c
> @@ -1200,8 +1200,6 @@ xfs_mountfs(
>  
>  	xfs_set_maxicount(mp);
>  
> -	mp->m_maxioffset = xfs_max_file_offset(sbp->sb_blocklog);
> -
>  	error = xfs_uuid_mount(mp);
>  	if (error)
>  		goto out;
> diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
> index 8b89c5a..47c6b3b 100644
> --- a/fs/xfs/xfs_mount.h
> +++ b/fs/xfs/xfs_mount.h
> @@ -176,7 +176,6 @@ typedef struct xfs_mount {
>  	uint			m_qflags;	/* quota status flags */
>  	xfs_trans_reservations_t m_reservations;/* precomputed res values */
>  	__uint64_t		m_maxicount;	/* maximum inode count */
> -	__uint64_t		m_maxioffset;	/* maximum inode offset */
>  	__uint64_t		m_resblks;	/* total reserved blocks */
>  	__uint64_t		m_resblks_avail;/* available reserved blocks */
>  	__uint64_t		m_resblks_save;	/* reserved blks @ remount,ro */
> @@ -297,7 +296,7 @@ xfs_preferred_iosize(xfs_mount_t *mp)
>  			PAGE_CACHE_SIZE));
>  }
>  
> -#define XFS_MAXIOFFSET(mp)	((mp)->m_maxioffset)
> +#define XFS_MAXIOFFSET(mp)	((mp)->m_super->s_maxbytes)
>  
>  #define XFS_LAST_UNMOUNT_WAS_CLEAN(mp)	\
>  				((mp)->m_flags & XFS_MOUNT_WAS_CLEAN)

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] xfs: make largest supported offset less shouty
  2012-06-08  5:44 ` [PATCH 2/2] xfs: make largest supported offset less shouty Dave Chinner
@ 2012-06-08 14:08   ` Eric Sandeen
  0 siblings, 0 replies; 5+ messages in thread
From: Eric Sandeen @ 2012-06-08 14:08 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs

On 6/8/12 12:44 AM, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
> 
> XFS_MAXIOFFSET() is just a simple macro that resolves to
> mp->m_maxioffset. It doesn't need to exist, and it just makes the
> code unnecessarily loud and shouty.
> 
> Make it quiet and easy to read.
> 
> Signed-off-by: Dave Chinner <dchinner@redhat.com>

Hm, for some reason I am sad to see the macro go ;)

Do you have any idea why we had these casts?

> -	last_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp));
> +	last_block = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);

s_maxbytes is ultimately a long long; m_maxioffset was a __uint64_t
so the cast seems unnecessary... but I think it's fine.

Reviewed-by: Eric Sandeen <sandeen@redhat.com>


> ---
>  fs/xfs/xfs_bmap.c     |    2 +-
>  fs/xfs/xfs_file.c     |    2 +-
>  fs/xfs/xfs_inode.c    |    2 +-
>  fs/xfs/xfs_iomap.c    |    2 +-
>  fs/xfs/xfs_mount.h    |    2 --
>  fs/xfs/xfs_qm.c       |    2 +-
>  fs/xfs/xfs_vnodeops.c |   10 +++++-----
>  7 files changed, 10 insertions(+), 12 deletions(-)
> 
> diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
> index 58b815e..848ffa7 100644
> --- a/fs/xfs/xfs_bmap.c
> +++ b/fs/xfs/xfs_bmap.c
> @@ -5517,7 +5517,7 @@ xfs_getbmap(
>  		if (xfs_get_extsz_hint(ip) ||
>  		    ip->i_d.di_flags & (XFS_DIFLAG_PREALLOC|XFS_DIFLAG_APPEND)){
>  			prealloced = 1;
> -			fixlen = XFS_MAXIOFFSET(mp);
> +			fixlen = mp->m_super->s_maxbytes;
>  		} else {
>  			prealloced = 0;
>  			fixlen = XFS_ISIZE(ip);
> diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
> index 2b18ea1..bcb97dc 100644
> --- a/fs/xfs/xfs_file.c
> +++ b/fs/xfs/xfs_file.c
> @@ -273,7 +273,7 @@ xfs_file_aio_read(
>  		}
>  	}
>  
> -	n = XFS_MAXIOFFSET(mp) - iocb->ki_pos;
> +	n = mp->m_super->s_maxbytes - iocb->ki_pos;
>  	if (n <= 0 || size == 0)
>  		return 0;
>  
> diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
> index 5c6ea39..fa49d80 100644
> --- a/fs/xfs/xfs_inode.c
> +++ b/fs/xfs/xfs_inode.c
> @@ -1225,7 +1225,7 @@ xfs_itruncate_extents(
>  	 * then there is nothing to do.
>  	 */
>  	first_unmap_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)new_size);
> -	last_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp));
> +	last_block = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);

Hm was there any reason for that cast?  s_maxbytes is ultimately
a long long; m_maxioffset was a __uint64_t so the cast seems
unnecessary... I think it's fine.

>  	if (first_unmap_block == last_block)
>  		return 0;
>  
> diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
> index 4590cd1..915edf6 100644
> --- a/fs/xfs/xfs_iomap.c
> +++ b/fs/xfs/xfs_iomap.c
> @@ -285,7 +285,7 @@ xfs_iomap_eof_want_preallocate(
>  	 * do any speculative allocation.
>  	 */
>  	start_fsb = XFS_B_TO_FSBT(mp, ((xfs_ufsize_t)(offset + count - 1)));
> -	count_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp));
> +	count_fsb = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);
>  	while (count_fsb > 0) {
>  		imaps = nimaps;
>  		firstblock = NULLFSBLOCK;
> diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
> index 47c6b3b..90a4530 100644
> --- a/fs/xfs/xfs_mount.h
> +++ b/fs/xfs/xfs_mount.h
> @@ -296,8 +296,6 @@ xfs_preferred_iosize(xfs_mount_t *mp)
>  			PAGE_CACHE_SIZE));
>  }
>  
> -#define XFS_MAXIOFFSET(mp)	((mp)->m_super->s_maxbytes)
> -
>  #define XFS_LAST_UNMOUNT_WAS_CLEAN(mp)	\
>  				((mp)->m_flags & XFS_MOUNT_WAS_CLEAN)
>  #define XFS_FORCED_SHUTDOWN(mp)	((mp)->m_flags & XFS_MOUNT_FS_SHUTDOWN)
> diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
> index 249db19..2e86fa0 100644
> --- a/fs/xfs/xfs_qm.c
> +++ b/fs/xfs/xfs_qm.c
> @@ -940,7 +940,7 @@ xfs_qm_dqiterate(
>  	map = kmem_alloc(XFS_DQITER_MAP_SIZE * sizeof(*map), KM_SLEEP);
>  
>  	lblkno = 0;
> -	maxlblkcnt = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp));
> +	maxlblkcnt = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);
>  	do {
>  		nmaps = XFS_DQITER_MAP_SIZE;
>  		/*
> diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
> index b6a82d8..c22f4e0 100644
> --- a/fs/xfs/xfs_vnodeops.c
> +++ b/fs/xfs/xfs_vnodeops.c
> @@ -174,7 +174,7 @@ xfs_free_eofblocks(
>  	 * of the file.  If not, then there is nothing to do.
>  	 */
>  	end_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_ISIZE(ip));
> -	last_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp));
> +	last_fsb = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);
>  	if (last_fsb <= end_fsb)
>  		return 0;
>  	map_len = last_fsb - end_fsb;
> @@ -2262,10 +2262,10 @@ xfs_change_file_space(
>  
>  	llen = bf->l_len > 0 ? bf->l_len - 1 : bf->l_len;
>  
> -	if (   (bf->l_start < 0)
> -	    || (bf->l_start > XFS_MAXIOFFSET(mp))
> -	    || (bf->l_start + llen < 0)
> -	    || (bf->l_start + llen > XFS_MAXIOFFSET(mp)))
> +	if (bf->l_start < 0 ||
> +	    bf->l_start > mp->m_super->s_maxbytes ||
> +	    bf->l_start + llen < 0 ||
> +	    bf->l_start + llen > mp->m_super->s_maxbytes)
>  		return XFS_ERROR(EINVAL);
>  
>  	bf->l_whence = 0;

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-06-08 14:09 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-08  5:44 [PATCH 0/2] xfs: kill m_maxioffset Dave Chinner
2012-06-08  5:44 ` [PATCH 1/2] xfs: m_maxioffset is redundant Dave Chinner
2012-06-08 14:02   ` Eric Sandeen
2012-06-08  5:44 ` [PATCH 2/2] xfs: make largest supported offset less shouty Dave Chinner
2012-06-08 14:08   ` Eric Sandeen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox