mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	 f516676857
			
		
	
	
		f516676857
		
	
	
	
	
		
			
			A number of ext4 source files were skipped due because their copyright permission statements didn't match the expected text used by the automated conversion utilities. I've added SPDX tags for the rest. While looking at some of these files, I've noticed that we have quite a bit of variation on the licenses that were used --- in particular some of the Red Hat licenses on the jbd2 files use a GPL2+ license, and we have some files that have a LGPL-2.1 license (which was quite surprising). I've not attempted to do any license changes. Even if it is perfectly legal to relicense to GPL 2.0-only for consistency's sake, that should be done with ext4 developer community discussion. Signed-off-by: Theodore Ts'o <tytso@mit.edu>
		
			
				
	
	
		
			57 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0+
 | |
| /*
 | |
|  * Copyright (C) 2017 Oracle.  All Rights Reserved.
 | |
|  *
 | |
|  * Author: Darrick J. Wong <darrick.wong@oracle.com>
 | |
|  */
 | |
| #ifndef __EXT4_FSMAP_H__
 | |
| #define	__EXT4_FSMAP_H__
 | |
| 
 | |
| struct fsmap;
 | |
| 
 | |
| /* internal fsmap representation */
 | |
| struct ext4_fsmap {
 | |
| 	struct list_head	fmr_list;
 | |
| 	dev_t		fmr_device;	/* device id */
 | |
| 	uint32_t	fmr_flags;	/* mapping flags */
 | |
| 	uint64_t	fmr_physical;	/* device offset of segment */
 | |
| 	uint64_t	fmr_owner;	/* owner id */
 | |
| 	uint64_t	fmr_length;	/* length of segment, blocks */
 | |
| };
 | |
| 
 | |
| struct ext4_fsmap_head {
 | |
| 	uint32_t	fmh_iflags;	/* control flags */
 | |
| 	uint32_t	fmh_oflags;	/* output flags */
 | |
| 	unsigned int	fmh_count;	/* # of entries in array incl. input */
 | |
| 	unsigned int	fmh_entries;	/* # of entries filled in (output). */
 | |
| 
 | |
| 	struct ext4_fsmap fmh_keys[2];	/* low and high keys */
 | |
| };
 | |
| 
 | |
| void ext4_fsmap_from_internal(struct super_block *sb, struct fsmap *dest,
 | |
| 		struct ext4_fsmap *src);
 | |
| void ext4_fsmap_to_internal(struct super_block *sb, struct ext4_fsmap *dest,
 | |
| 		struct fsmap *src);
 | |
| 
 | |
| /* fsmap to userspace formatter - copy to user & advance pointer */
 | |
| typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *);
 | |
| 
 | |
| int ext4_getfsmap(struct super_block *sb, struct ext4_fsmap_head *head,
 | |
| 		ext4_fsmap_format_t formatter, void *arg);
 | |
| 
 | |
| #define EXT4_QUERY_RANGE_ABORT		1
 | |
| #define EXT4_QUERY_RANGE_CONTINUE	0
 | |
| 
 | |
| /*	fmr_owner special values for FS_IOC_GETFSMAP; some share w/ XFS */
 | |
| #define EXT4_FMR_OWN_FREE	FMR_OWN_FREE      /* free space */
 | |
| #define EXT4_FMR_OWN_UNKNOWN	FMR_OWN_UNKNOWN   /* unknown owner */
 | |
| #define EXT4_FMR_OWN_FS		FMR_OWNER('X', 1) /* static fs metadata */
 | |
| #define EXT4_FMR_OWN_LOG	FMR_OWNER('X', 2) /* journalling log */
 | |
| #define EXT4_FMR_OWN_INODES	FMR_OWNER('X', 5) /* inodes */
 | |
| #define EXT4_FMR_OWN_GDT	FMR_OWNER('f', 1) /* group descriptors */
 | |
| #define EXT4_FMR_OWN_RESV_GDT	FMR_OWNER('f', 2) /* reserved gdt blocks */
 | |
| #define EXT4_FMR_OWN_BLKBM	FMR_OWNER('f', 3) /* inode bitmap */
 | |
| #define EXT4_FMR_OWN_INOBM	FMR_OWNER('f', 4) /* block bitmap */
 | |
| 
 | |
| #endif /* __EXT4_FSMAP_H__ */
 |