mirror of https://gitee.com/openkylin/linux.git
[XFS] Use kernel-supplied "roundup_pow_of_two" for simplicity
SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:30098a Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
This commit is contained in:
parent
e6a4b37f38
commit
40ebd81d1a
|
@ -15,6 +15,8 @@
|
|||
* along with this program; if not, write the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
#include <linux/log2.h>
|
||||
|
||||
#include "xfs.h"
|
||||
#include "xfs_fs.h"
|
||||
#include "xfs_types.h"
|
||||
|
@ -3642,32 +3644,6 @@ xfs_iaccess(
|
|||
return XFS_ERROR(EACCES);
|
||||
}
|
||||
|
||||
/*
|
||||
* xfs_iroundup: round up argument to next power of two
|
||||
*/
|
||||
uint
|
||||
xfs_iroundup(
|
||||
uint v)
|
||||
{
|
||||
int i;
|
||||
uint m;
|
||||
|
||||
if ((v & (v - 1)) == 0)
|
||||
return v;
|
||||
ASSERT((v & 0x80000000) == 0);
|
||||
if ((v & (v + 1)) == 0)
|
||||
return v + 1;
|
||||
for (i = 0, m = 1; i < 31; i++, m <<= 1) {
|
||||
if (v & m)
|
||||
continue;
|
||||
v |= m;
|
||||
if ((v & (v + 1)) == 0)
|
||||
return v + 1;
|
||||
}
|
||||
ASSERT(0);
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
#ifdef XFS_ILOCK_TRACE
|
||||
ktrace_t *xfs_ilock_trace_buf;
|
||||
|
||||
|
@ -4174,7 +4150,7 @@ xfs_iext_realloc_direct(
|
|||
return;
|
||||
}
|
||||
if (!is_power_of_2(new_size)){
|
||||
rnew_size = xfs_iroundup(new_size);
|
||||
rnew_size = roundup_pow_of_two(new_size);
|
||||
}
|
||||
if (rnew_size != ifp->if_real_bytes) {
|
||||
ifp->if_u1.if_extents =
|
||||
|
@ -4197,7 +4173,7 @@ xfs_iext_realloc_direct(
|
|||
else {
|
||||
new_size += ifp->if_bytes;
|
||||
if (!is_power_of_2(new_size)) {
|
||||
rnew_size = xfs_iroundup(new_size);
|
||||
rnew_size = roundup_pow_of_two(new_size);
|
||||
}
|
||||
xfs_iext_inline_to_direct(ifp, rnew_size);
|
||||
}
|
||||
|
|
|
@ -526,7 +526,6 @@ int xfs_iextents_copy(xfs_inode_t *, xfs_bmbt_rec_t *, int);
|
|||
int xfs_iflush(xfs_inode_t *, uint);
|
||||
void xfs_iflush_all(struct xfs_mount *);
|
||||
int xfs_iaccess(xfs_inode_t *, mode_t, cred_t *);
|
||||
uint xfs_iroundup(uint);
|
||||
void xfs_ichgtime(xfs_inode_t *, int);
|
||||
xfs_fsize_t xfs_file_last_byte(xfs_inode_t *);
|
||||
void xfs_lock_inodes(xfs_inode_t **, int, int, uint);
|
||||
|
|
Loading…
Reference in New Issue