diff options
-rw-r--r-- | fs/xfs/xfs_arch.h | 6 | ||||
-rw-r--r-- | fs/xfs/xfs_bmap.c | 23 | ||||
-rw-r--r-- | fs/xfs/xfs_dinode.h | 11 | ||||
-rw-r--r-- | fs/xfs/xfs_dir.h | 2 | ||||
-rw-r--r-- | fs/xfs/xfs_dir2.h | 3 | ||||
-rw-r--r-- | fs/xfs/xfs_fs.h | 8 | ||||
-rw-r--r-- | fs/xfs/xfs_iomap.c | 1 | ||||
-rw-r--r-- | fs/xfs/xfs_sb.h | 17 | ||||
-rw-r--r-- | fs/xfs/xfs_trans.h | 1 | ||||
-rw-r--r-- | fs/xfs/xfs_vnodeops.c | 2 |
10 files changed, 32 insertions, 42 deletions
diff --git a/fs/xfs/xfs_arch.h b/fs/xfs/xfs_arch.h index f1aeda599eb1..71de20cedb5c 100644 --- a/fs/xfs/xfs_arch.h +++ b/fs/xfs/xfs_arch.h | |||
@@ -202,7 +202,7 @@ static inline void be64_add(__be64 *a, __s64 b) | |||
202 | */ | 202 | */ |
203 | 203 | ||
204 | #define XFS_GET_DIR_INO4(di) \ | 204 | #define XFS_GET_DIR_INO4(di) \ |
205 | (((u32)(di).i[0] << 24) | ((di).i[1] << 16) | ((di).i[2] << 8) | ((di).i[3])) | 205 | (((__u32)(di).i[0] << 24) | ((di).i[1] << 16) | ((di).i[2] << 8) | ((di).i[3])) |
206 | 206 | ||
207 | #define XFS_PUT_DIR_INO4(from, di) \ | 207 | #define XFS_PUT_DIR_INO4(from, di) \ |
208 | do { \ | 208 | do { \ |
@@ -213,9 +213,9 @@ do { \ | |||
213 | } while (0) | 213 | } while (0) |
214 | 214 | ||
215 | #define XFS_DI_HI(di) \ | 215 | #define XFS_DI_HI(di) \ |
216 | (((u32)(di).i[1] << 16) | ((di).i[2] << 8) | ((di).i[3])) | 216 | (((__u32)(di).i[1] << 16) | ((di).i[2] << 8) | ((di).i[3])) |
217 | #define XFS_DI_LO(di) \ | 217 | #define XFS_DI_LO(di) \ |
218 | (((u32)(di).i[4] << 24) | ((di).i[5] << 16) | ((di).i[6] << 8) | ((di).i[7])) | 218 | (((__u32)(di).i[4] << 24) | ((di).i[5] << 16) | ((di).i[6] << 8) | ((di).i[7])) |
219 | 219 | ||
220 | #define XFS_GET_DIR_INO8(di) \ | 220 | #define XFS_GET_DIR_INO8(di) \ |
221 | (((xfs_ino_t)XFS_DI_LO(di) & 0xffffffffULL) | \ | 221 | (((xfs_ino_t)XFS_DI_LO(di) & 0xffffffffULL) | \ |
diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index 8ac170b828f5..34bfb8ad0a25 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c | |||
@@ -3653,14 +3653,16 @@ xfs_bmap_search_extents( | |||
3653 | 3653 | ||
3654 | ep = xfs_bmap_do_search_extents(base, lastx, nextents, bno, eofp, | 3654 | ep = xfs_bmap_do_search_extents(base, lastx, nextents, bno, eofp, |
3655 | lastxp, gotp, prevp); | 3655 | lastxp, gotp, prevp); |
3656 | rt = ip->i_d.di_flags & XFS_DIFLAG_REALTIME; | 3656 | rt = (whichfork == XFS_DATA_FORK) && XFS_IS_REALTIME_INODE(ip); |
3657 | if(!rt && !gotp->br_startblock && (*lastxp != NULLEXTNUM)) { | 3657 | if (unlikely(!rt && !gotp->br_startblock && (*lastxp != NULLEXTNUM))) { |
3658 | cmn_err(CE_PANIC,"Access to block zero: fs: <%s> inode: %lld " | 3658 | cmn_err(CE_PANIC,"Access to block zero: fs: <%s> inode: %lld " |
3659 | "start_block : %llx start_off : %llx blkcnt : %llx " | 3659 | "start_block : %llx start_off : %llx blkcnt : %llx " |
3660 | "extent-state : %x \n", | 3660 | "extent-state : %x \n", |
3661 | (ip->i_mount)->m_fsname,(long long)ip->i_ino, | 3661 | (ip->i_mount)->m_fsname, (long long)ip->i_ino, |
3662 | gotp->br_startblock, gotp->br_startoff, | 3662 | (unsigned long long)gotp->br_startblock, |
3663 | gotp->br_blockcount,gotp->br_state); | 3663 | (unsigned long long)gotp->br_startoff, |
3664 | (unsigned long long)gotp->br_blockcount, | ||
3665 | gotp->br_state); | ||
3664 | } | 3666 | } |
3665 | return ep; | 3667 | return ep; |
3666 | } | 3668 | } |
@@ -4883,19 +4885,18 @@ xfs_bmapi( | |||
4883 | error = xfs_mod_incore_sb(mp, | 4885 | error = xfs_mod_incore_sb(mp, |
4884 | XFS_SBS_FDBLOCKS, | 4886 | XFS_SBS_FDBLOCKS, |
4885 | -(indlen), rsvd); | 4887 | -(indlen), rsvd); |
4886 | if (error && rt) { | 4888 | if (error && rt) |
4887 | xfs_mod_incore_sb(ip->i_mount, | 4889 | xfs_mod_incore_sb(mp, |
4888 | XFS_SBS_FREXTENTS, | 4890 | XFS_SBS_FREXTENTS, |
4889 | extsz, rsvd); | 4891 | extsz, rsvd); |
4890 | } else if (error) { | 4892 | else if (error) |
4891 | xfs_mod_incore_sb(ip->i_mount, | 4893 | xfs_mod_incore_sb(mp, |
4892 | XFS_SBS_FDBLOCKS, | 4894 | XFS_SBS_FDBLOCKS, |
4893 | alen, rsvd); | 4895 | alen, rsvd); |
4894 | } | ||
4895 | } | 4896 | } |
4896 | 4897 | ||
4897 | if (error) { | 4898 | if (error) { |
4898 | if (XFS_IS_QUOTA_ON(ip->i_mount)) | 4899 | if (XFS_IS_QUOTA_ON(mp)) |
4899 | /* unreserve the blocks now */ | 4900 | /* unreserve the blocks now */ |
4900 | (void) | 4901 | (void) |
4901 | XFS_TRANS_UNRESERVE_QUOTA_NBLKS( | 4902 | XFS_TRANS_UNRESERVE_QUOTA_NBLKS( |
diff --git a/fs/xfs/xfs_dinode.h b/fs/xfs/xfs_dinode.h index f697aab8a3d2..79d0d9e1fbab 100644 --- a/fs/xfs/xfs_dinode.h +++ b/fs/xfs/xfs_dinode.h | |||
@@ -199,10 +199,16 @@ typedef enum xfs_dinode_fmt | |||
199 | 199 | ||
200 | #define XFS_DFORK_DSIZE(dip,mp) \ | 200 | #define XFS_DFORK_DSIZE(dip,mp) \ |
201 | XFS_CFORK_DSIZE_DISK(&(dip)->di_core, mp) | 201 | XFS_CFORK_DSIZE_DISK(&(dip)->di_core, mp) |
202 | #define XFS_DFORK_DSIZE_HOST(dip,mp) \ | ||
203 | XFS_CFORK_DSIZE(&(dip)->di_core, mp) | ||
202 | #define XFS_DFORK_ASIZE(dip,mp) \ | 204 | #define XFS_DFORK_ASIZE(dip,mp) \ |
203 | XFS_CFORK_ASIZE_DISK(&(dip)->di_core, mp) | 205 | XFS_CFORK_ASIZE_DISK(&(dip)->di_core, mp) |
206 | #define XFS_DFORK_ASIZE_HOST(dip,mp) \ | ||
207 | XFS_CFORK_ASIZE(&(dip)->di_core, mp) | ||
204 | #define XFS_DFORK_SIZE(dip,mp,w) \ | 208 | #define XFS_DFORK_SIZE(dip,mp,w) \ |
205 | XFS_CFORK_SIZE_DISK(&(dip)->di_core, mp, w) | 209 | XFS_CFORK_SIZE_DISK(&(dip)->di_core, mp, w) |
210 | #define XFS_DFORK_SIZE_HOST(dip,mp,w) \ | ||
211 | XFS_CFORK_SIZE(&(dip)->di_core, mp, w) | ||
206 | 212 | ||
207 | #define XFS_DFORK_Q(dip) XFS_CFORK_Q_DISK(&(dip)->di_core) | 213 | #define XFS_DFORK_Q(dip) XFS_CFORK_Q_DISK(&(dip)->di_core) |
208 | #define XFS_DFORK_BOFF(dip) XFS_CFORK_BOFF_DISK(&(dip)->di_core) | 214 | #define XFS_DFORK_BOFF(dip) XFS_CFORK_BOFF_DISK(&(dip)->di_core) |
@@ -216,6 +222,7 @@ typedef enum xfs_dinode_fmt | |||
216 | #define XFS_CFORK_FMT_SET(dcp,w,n) \ | 222 | #define XFS_CFORK_FMT_SET(dcp,w,n) \ |
217 | ((w) == XFS_DATA_FORK ? \ | 223 | ((w) == XFS_DATA_FORK ? \ |
218 | ((dcp)->di_format = (n)) : ((dcp)->di_aformat = (n))) | 224 | ((dcp)->di_format = (n)) : ((dcp)->di_aformat = (n))) |
225 | #define XFS_DFORK_FORMAT(dip,w) XFS_CFORK_FORMAT(&(dip)->di_core, w) | ||
219 | 226 | ||
220 | #define XFS_CFORK_NEXTENTS_DISK(dcp,w) \ | 227 | #define XFS_CFORK_NEXTENTS_DISK(dcp,w) \ |
221 | ((w) == XFS_DATA_FORK ? \ | 228 | ((w) == XFS_DATA_FORK ? \ |
@@ -223,13 +230,13 @@ typedef enum xfs_dinode_fmt | |||
223 | INT_GET((dcp)->di_anextents, ARCH_CONVERT)) | 230 | INT_GET((dcp)->di_anextents, ARCH_CONVERT)) |
224 | #define XFS_CFORK_NEXTENTS(dcp,w) \ | 231 | #define XFS_CFORK_NEXTENTS(dcp,w) \ |
225 | ((w) == XFS_DATA_FORK ? (dcp)->di_nextents : (dcp)->di_anextents) | 232 | ((w) == XFS_DATA_FORK ? (dcp)->di_nextents : (dcp)->di_anextents) |
233 | #define XFS_DFORK_NEXTENTS(dip,w) XFS_CFORK_NEXTENTS_DISK(&(dip)->di_core, w) | ||
234 | #define XFS_DFORK_NEXTENTS_HOST(dip,w) XFS_CFORK_NEXTENTS(&(dip)->di_core, w) | ||
226 | 235 | ||
227 | #define XFS_CFORK_NEXT_SET(dcp,w,n) \ | 236 | #define XFS_CFORK_NEXT_SET(dcp,w,n) \ |
228 | ((w) == XFS_DATA_FORK ? \ | 237 | ((w) == XFS_DATA_FORK ? \ |
229 | ((dcp)->di_nextents = (n)) : ((dcp)->di_anextents = (n))) | 238 | ((dcp)->di_nextents = (n)) : ((dcp)->di_anextents = (n))) |
230 | 239 | ||
231 | #define XFS_DFORK_NEXTENTS(dip,w) XFS_CFORK_NEXTENTS_DISK(&(dip)->di_core, w) | ||
232 | |||
233 | #define XFS_BUF_TO_DINODE(bp) ((xfs_dinode_t *)XFS_BUF_PTR(bp)) | 240 | #define XFS_BUF_TO_DINODE(bp) ((xfs_dinode_t *)XFS_BUF_PTR(bp)) |
234 | 241 | ||
235 | /* | 242 | /* |
diff --git a/fs/xfs/xfs_dir.h b/fs/xfs/xfs_dir.h index 488defe86ba6..8cc8afb9f6c0 100644 --- a/fs/xfs/xfs_dir.h +++ b/fs/xfs/xfs_dir.h | |||
@@ -135,6 +135,8 @@ void xfs_dir_startup(void); /* called exactly once */ | |||
135 | ((mp)->m_dirops.xd_shortform_to_single(args)) | 135 | ((mp)->m_dirops.xd_shortform_to_single(args)) |
136 | 136 | ||
137 | #define XFS_DIR_IS_V1(mp) ((mp)->m_dirversion == 1) | 137 | #define XFS_DIR_IS_V1(mp) ((mp)->m_dirversion == 1) |
138 | #define XFS_DIR_IS_V2(mp) ((mp)->m_dirversion == 2) | ||
138 | extern xfs_dirops_t xfsv1_dirops; | 139 | extern xfs_dirops_t xfsv1_dirops; |
140 | extern xfs_dirops_t xfsv2_dirops; | ||
139 | 141 | ||
140 | #endif /* __XFS_DIR_H__ */ | 142 | #endif /* __XFS_DIR_H__ */ |
diff --git a/fs/xfs/xfs_dir2.h b/fs/xfs/xfs_dir2.h index 7e24ffeda9e1..3158f5dc431f 100644 --- a/fs/xfs/xfs_dir2.h +++ b/fs/xfs/xfs_dir2.h | |||
@@ -72,9 +72,6 @@ typedef struct xfs_dir2_put_args { | |||
72 | struct uio *uio; /* uio control structure */ | 72 | struct uio *uio; /* uio control structure */ |
73 | } xfs_dir2_put_args_t; | 73 | } xfs_dir2_put_args_t; |
74 | 74 | ||
75 | #define XFS_DIR_IS_V2(mp) ((mp)->m_dirversion == 2) | ||
76 | extern xfs_dirops_t xfsv2_dirops; | ||
77 | |||
78 | /* | 75 | /* |
79 | * Other interfaces used by the rest of the dir v2 code. | 76 | * Other interfaces used by the rest of the dir v2 code. |
80 | */ | 77 | */ |
diff --git a/fs/xfs/xfs_fs.h b/fs/xfs/xfs_fs.h index 3280f49496ba..14010f1fa82f 100644 --- a/fs/xfs/xfs_fs.h +++ b/fs/xfs/xfs_fs.h | |||
@@ -3,15 +3,15 @@ | |||
3 | * All Rights Reserved. | 3 | * All Rights Reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or | 5 | * This program is free software; you can redistribute it and/or |
6 | * modify it under the terms of the GNU General Public License as | 6 | * modify it under the terms of the GNU Lesser General Public License |
7 | * published by the Free Software Foundation. | 7 | * as published by the Free Software Foundation. |
8 | * | 8 | * |
9 | * This program is distributed in the hope that it would be useful, | 9 | * This program is distributed in the hope that it would be useful, |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 | * GNU General Public License for more details. | 12 | * GNU Lesser General Public License for more details. |
13 | * | 13 | * |
14 | * You should have received a copy of the GNU General Public License | 14 | * You should have received a copy of the GNU Lesser General Public License |
15 | * along with this program; if not, write the Free Software Foundation, | 15 | * along with this program; if not, write the Free Software Foundation, |
16 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 16 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
17 | */ | 17 | */ |
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index 5ecf3e3e86aa..d72c83d22ee0 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c | |||
@@ -608,6 +608,7 @@ xfs_iomap_eof_want_preallocate( | |||
608 | count_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp)); | 608 | count_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp)); |
609 | while (count_fsb > 0) { | 609 | while (count_fsb > 0) { |
610 | imaps = nimaps; | 610 | imaps = nimaps; |
611 | firstblock = NULLFSBLOCK; | ||
611 | error = XFS_BMAPI(mp, NULL, io, start_fsb, count_fsb, | 612 | error = XFS_BMAPI(mp, NULL, io, start_fsb, count_fsb, |
612 | 0, &firstblock, 0, imap, &imaps, NULL); | 613 | 0, &firstblock, 0, imap, &imaps, NULL); |
613 | if (error) | 614 | if (error) |
diff --git a/fs/xfs/xfs_sb.h b/fs/xfs/xfs_sb.h index 4a17d335f897..bf168a91ddb8 100644 --- a/fs/xfs/xfs_sb.h +++ b/fs/xfs/xfs_sb.h | |||
@@ -68,18 +68,6 @@ struct xfs_mount; | |||
68 | (XFS_SB_VERSION_NUMBITS | \ | 68 | (XFS_SB_VERSION_NUMBITS | \ |
69 | XFS_SB_VERSION_OKREALFBITS | \ | 69 | XFS_SB_VERSION_OKREALFBITS | \ |
70 | XFS_SB_VERSION_OKSASHFBITS) | 70 | XFS_SB_VERSION_OKSASHFBITS) |
71 | #define XFS_SB_VERSION_MKFS(ia,dia,extflag,dirv2,na,sflag,morebits) \ | ||
72 | (((ia) || (dia) || (extflag) || (dirv2) || (na) || (sflag) || \ | ||
73 | (morebits)) ? \ | ||
74 | (XFS_SB_VERSION_4 | \ | ||
75 | ((ia) ? XFS_SB_VERSION_ALIGNBIT : 0) | \ | ||
76 | ((dia) ? XFS_SB_VERSION_DALIGNBIT : 0) | \ | ||
77 | ((extflag) ? XFS_SB_VERSION_EXTFLGBIT : 0) | \ | ||
78 | ((dirv2) ? XFS_SB_VERSION_DIRV2BIT : 0) | \ | ||
79 | ((na) ? XFS_SB_VERSION_LOGV2BIT : 0) | \ | ||
80 | ((sflag) ? XFS_SB_VERSION_SECTORBIT : 0) | \ | ||
81 | ((morebits) ? XFS_SB_VERSION_MOREBITSBIT : 0)) : \ | ||
82 | XFS_SB_VERSION_1) | ||
83 | 71 | ||
84 | /* | 72 | /* |
85 | * There are two words to hold XFS "feature" bits: the original | 73 | * There are two words to hold XFS "feature" bits: the original |
@@ -105,11 +93,6 @@ struct xfs_mount; | |||
105 | (XFS_SB_VERSION2_OKREALFBITS | \ | 93 | (XFS_SB_VERSION2_OKREALFBITS | \ |
106 | XFS_SB_VERSION2_OKSASHFBITS ) | 94 | XFS_SB_VERSION2_OKSASHFBITS ) |
107 | 95 | ||
108 | /* | ||
109 | * mkfs macro to set up sb_features2 word | ||
110 | */ | ||
111 | #define XFS_SB_VERSION2_MKFS(resvd1, sbcntr) 0 | ||
112 | |||
113 | typedef struct xfs_sb | 96 | typedef struct xfs_sb |
114 | { | 97 | { |
115 | __uint32_t sb_magicnum; /* magic number == XFS_SB_MAGIC */ | 98 | __uint32_t sb_magicnum; /* magic number == XFS_SB_MAGIC */ |
diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h index a889963fdd14..d77901c07f63 100644 --- a/fs/xfs/xfs_trans.h +++ b/fs/xfs/xfs_trans.h | |||
@@ -973,7 +973,6 @@ void xfs_trans_bhold(xfs_trans_t *, struct xfs_buf *); | |||
973 | void xfs_trans_bhold_release(xfs_trans_t *, struct xfs_buf *); | 973 | void xfs_trans_bhold_release(xfs_trans_t *, struct xfs_buf *); |
974 | void xfs_trans_binval(xfs_trans_t *, struct xfs_buf *); | 974 | void xfs_trans_binval(xfs_trans_t *, struct xfs_buf *); |
975 | void xfs_trans_inode_buf(xfs_trans_t *, struct xfs_buf *); | 975 | void xfs_trans_inode_buf(xfs_trans_t *, struct xfs_buf *); |
976 | void xfs_trans_inode_buf(xfs_trans_t *, struct xfs_buf *); | ||
977 | void xfs_trans_stale_inode_buf(xfs_trans_t *, struct xfs_buf *); | 976 | void xfs_trans_stale_inode_buf(xfs_trans_t *, struct xfs_buf *); |
978 | void xfs_trans_dquot_buf(xfs_trans_t *, struct xfs_buf *, uint); | 977 | void xfs_trans_dquot_buf(xfs_trans_t *, struct xfs_buf *, uint); |
979 | void xfs_trans_inode_alloc_buf(xfs_trans_t *, struct xfs_buf *); | 978 | void xfs_trans_inode_alloc_buf(xfs_trans_t *, struct xfs_buf *); |
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index f6aed9ef6a61..15734c54952e 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c | |||
@@ -4056,7 +4056,7 @@ retry: | |||
4056 | xfs_fileoff_t s, e; | 4056 | xfs_fileoff_t s, e; |
4057 | 4057 | ||
4058 | /* | 4058 | /* |
4059 | * Determine space reservations for data/realtime, | 4059 | * Determine space reservations for data/realtime. |
4060 | */ | 4060 | */ |
4061 | if (unlikely(extsz)) { | 4061 | if (unlikely(extsz)) { |
4062 | s = startoffset_fsb; | 4062 | s = startoffset_fsb; |