.\" 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.