On Sun, Sep 13, 2009 at 10:12 PM, SandeepKsinha <sandeepksinha@xxxxxxxxx> wrote: > Hi, > > > On Sun, Sep 13, 2009 at 10:07 PM, Manish Katiyar <mkatiyar@xxxxxxxxx> wrote: >> On Sun, Sep 13, 2009 at 5:44 PM, SandeepKsinha <sandeepksinha@xxxxxxxxx> wrote: >>> Hi all, >>> >>> Looking at the flags in the extent info, Is there any specifc flags >>> which indicates an extent to be a HOLE?? >> >> I am not sure if I understand the question correctly ...... why would >> you need that ? Can you give an example where it should be used ?? >> > > Look at e4defrag.c, > it checks the file size and allocates the same number of blocks for > donor inode. Which will eventually make a holey file into a normal > one. > Any tool/application should make sure that they leave a sparse file as sparse. > > I think, as suggested by Greg Freemyer, we can use BMAP ioctl to get > such information. Yes, but I think bmap would be costly if the file is large and is not holey :-( .... but that would be probably same calling fiemap if the file is completely fragmented such that each extent size is 1. > > >>> >>> I could only find the following ones... >>> >>> 39#define FIEMAP_MAX_OFFSET (~0ULL) >>> 40 >>> 41#define FIEMAP_FLAG_SYNC 0x00000001 /* sync file data before map */ >>> 42#define FIEMAP_FLAG_XATTR 0x00000002 /* map extended attribute tree */ >>> 43 >>> 44#define FIEMAP_FLAGS_COMPAT (FIEMAP_FLAG_SYNC | FIEMAP_FLAG_XATTR) >>> 45 >>> 46#define FIEMAP_EXTENT_LAST 0x00000001 /* Last extent >>> in file. */ >>> 47#define FIEMAP_EXTENT_UNKNOWN 0x00000002 /* Data >>> location unknown. */ >>> 48#define FIEMAP_EXTENT_DELALLOC 0x00000004 /* Location >>> still pending. >>> 49 * Sets >>> EXTENT_UNKNOWN. */ >>> 50#define FIEMAP_EXTENT_ENCODED 0x00000008 /* Data can not be read >>> 51 * while fs is >>> unmounted */ >>> 52#define FIEMAP_EXTENT_DATA_ENCRYPTED 0x00000080 /* Data is >>> encrypted by fs. >>> 53 * Sets >>> EXTENT_NO_BYPASS. */ >>> 54#define FIEMAP_EXTENT_NOT_ALIGNED 0x00000100 /* Extent >>> offsets may not be >>> 55 * block aligned. */ >>> 56#define FIEMAP_EXTENT_DATA_INLINE 0x00000200 /* Data mixed >>> with metadata. >>> 57 * Sets >>> EXTENT_NOT_ALIGNED.*/ >>> 58#define FIEMAP_EXTENT_DATA_TAIL 0x00000400 /* Multiple >>> files in block. >>> 59 * Sets >>> EXTENT_NOT_ALIGNED.*/ >>> 60#define FIEMAP_EXTENT_UNWRITTEN 0x00000800 /* Space allocated, but >>> 61 * no data >>> (i.e. zero). */ >>> 62#define FIEMAP_EXTENT_MERGED 0x00001000 /* File does not natively >>> 63 * support >>> extents. Result >>> 64 * merged for >>> efficiency. */ >>> >>> >>> -- >>> Regards, >>> Sandeep. >>> >>> >>> >>> >>> >>> >>> “To learn is to change. Education is a process that changes the learner.” >>> >>> -- >>> To unsubscribe from this list: send an email with >>> "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx >>> Please read the FAQ at http://kernelnewbies.org/FAQ >>> >>> >> >> >> >> -- >> Thanks - >> Manish >> > > > > -- > Regards, > Sandeep. > > > > > > > “To learn is to change. Education is a process that changes the learner.” > -- Thanks - Manish -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ