Skip to content
Snippets Groups Projects
Select Git revision
13 results Searching

vc4_gem.c

Blame
  • xfs_bmap.c 166.74 KiB
    // SPDX-License-Identifier: GPL-2.0
    /*
     * Copyright (c) 2000-2006 Silicon Graphics, Inc.
     * All Rights Reserved.
     */
    #include "xfs.h"
    #include "xfs_fs.h"
    #include "xfs_shared.h"
    #include "xfs_format.h"
    #include "xfs_log_format.h"
    #include "xfs_trans_resv.h"
    #include "xfs_bit.h"
    #include "xfs_sb.h"
    #include "xfs_mount.h"
    #include "xfs_defer.h"
    #include "xfs_dir2.h"
    #include "xfs_inode.h"
    #include "xfs_btree.h"
    #include "xfs_trans.h"
    #include "xfs_alloc.h"
    #include "xfs_bmap.h"
    #include "xfs_bmap_util.h"
    #include "xfs_bmap_btree.h"
    #include "xfs_rtalloc.h"
    #include "xfs_errortag.h"
    #include "xfs_error.h"
    #include "xfs_quota.h"
    #include "xfs_trans_space.h"
    #include "xfs_buf_item.h"
    #include "xfs_trace.h"
    #include "xfs_attr_leaf.h"
    #include "xfs_filestream.h"
    #include "xfs_rmap.h"
    #include "xfs_ag_resv.h"
    #include "xfs_refcount.h"
    #include "xfs_icache.h"
    #include "xfs_iomap.h"
    
    
    kmem_zone_t		*xfs_bmap_free_item_zone;
    
    /*
     * Miscellaneous helper functions
     */
    
    /*
     * Compute and fill in the value of the maximum depth of a bmap btree
     * in this filesystem.  Done once, during mount.
     */
    void
    xfs_bmap_compute_maxlevels(
    	xfs_mount_t	*mp,		/* file system mount structure */
    	int		whichfork)	/* data or attr fork */
    {
    	int		level;		/* btree level */
    	uint		maxblocks;	/* max blocks at this level */
    	uint		maxleafents;	/* max leaf entries possible */
    	int		maxrootrecs;	/* max records in root block */
    	int		minleafrecs;	/* min records in leaf block */
    	int		minnoderecs;	/* min records in node block */
    	int		sz;		/* root block size */
    
    	/*
    	 * The maximum number of extents in a file, hence the maximum number of
    	 * leaf entries, is controlled by the size of the on-disk extent count,
    	 * either a signed 32-bit number for the data fork, or a signed 16-bit
    	 * number for the attr fork.
    	 *
    	 * Note that we can no longer assume that if we are in ATTR1 that
    	 * the fork offset of all the inodes will be