Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4497f287 authored by Dave Chinner's avatar Dave Chinner
Browse files

Merge branch 'xfs-misc-fixes-for-4.2-2' into for-next

parents 66e8ac7b 46fc58da
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -606,20 +606,20 @@ xfs_ialloc_ag_alloc(
	uint16_t	allocmask = (uint16_t) -1; /* init. to full chunk */
	struct xfs_inobt_rec_incore rec;
	struct xfs_perag *pag;

	int		do_sparse = 0;

#ifdef DEBUG
	/* randomly do sparse inode allocations */
	if (xfs_sb_version_hassparseinodes(&tp->t_mountp->m_sb))
		do_sparse = prandom_u32() & 1;
#endif

	memset(&args, 0, sizeof(args));
	args.tp = tp;
	args.mp = tp->t_mountp;
	args.fsbno = NULLFSBLOCK;

#ifdef DEBUG
	/* randomly do sparse inode allocations */
	if (xfs_sb_version_hassparseinodes(&tp->t_mountp->m_sb) &&
	    args.mp->m_ialloc_min_blks < args.mp->m_ialloc_blks)
		do_sparse = prandom_u32() & 1;
#endif

	/*
	 * Locking will ensure that we don't have two callers in here
	 * at one time.
@@ -768,6 +768,7 @@ sparse_alloc:
			return error;

		newlen = args.len << args.mp->m_sb.sb_inopblog;
		ASSERT(newlen <= XFS_INODES_PER_CHUNK);
		allocmask = (1 << (newlen / XFS_INODES_PER_HOLEMASK_BIT)) - 1;
	}

+4 −3
Original line number Diff line number Diff line
@@ -2244,6 +2244,7 @@ xfs_ifree_cluster(
	int			inodes_per_cluster;
	int			nbufs;
	int			i, j;
	int			ioffset;
	xfs_daddr_t		blkno;
	xfs_buf_t		*bp;
	xfs_inode_t		*ip;
@@ -2264,9 +2265,9 @@ xfs_ifree_cluster(
		 * physically allocated. Skip the cluster if an inode falls into
		 * a sparse region.
		 */
		if ((xic->alloc & XFS_INOBT_MASK(inum - xic->first_ino)) == 0) {
			ASSERT(((inum - xic->first_ino) %
				inodes_per_cluster) == 0);
		ioffset = inum - xic->first_ino;
		if ((xic->alloc & XFS_INOBT_MASK(ioffset)) == 0) {
			ASSERT(do_mod(ioffset, inodes_per_cluster) == 0);
			continue;
		}