.\" This manpage has been automatically generated by docbook2man .\" from a DocBook document. This tool can be found at: .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . .TH "EXT3_FREE_DATA" "" "06 October 2005" "" "" .SH NAME ext3_free_data \- free a list of data blocks .SH SYNOPSIS "SYNOPSIS" .sp \fB .sp void ext3_free_data (handle_t * \fIhandle\fB, struct inode * \fIinode\fB, struct buffer_head * \fIthis_bh\fB, u32 * \fIfirst\fB, u32 * \fIlast\fB); \fR .SH "ARGUMENTS" .TP \fB\fIhandle\fB\fR handle for this transaction .TP \fB\fIinode\fB\fR inode we are dealing with .TP \fB\fIthis_bh\fB\fR indirect buffer_head which contains *\fIfirst\fR and *\fIlast\fR .TP \fB\fIfirst\fB\fR array of block numbers .TP \fB\fIlast\fB\fR points immediately past the end of array .SH "DESCRIPTION" .PP We are freeing all blocks refered from that array (numbers are stored as little-endian 32-bit) and updating \fIinode\fR->i_blocks appropriately. .PP We accumulate contiguous runs of blocks to free. Conveniently, if these blocks are contiguous then releasing them at one time will only affect one or two bitmap blocks (+ group descriptor(s) and superblock) and we won't actually use a lot of journal space. .PP \fIthis_bh\fR will be NULL if \fIfirst\fR and \fIlast\fR point into the inode's direct block pointers.