Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6aab6dd3 authored by Al Viro's avatar Al Viro
Browse files

ufs_trunc_branch(): massage towards killing recursion



We always have 0 < depth2 <= depth in there, so
if (--depth) {
	if (--depth2)
		A
	B
} else {
	C // not using depth2
}
D // not using depth2

is equivalent to

if (--depth2)
	A with s/depth/depth - 1/
if (--depth)
	B
else
	C
D

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 6d1ebbca
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -1145,12 +1145,12 @@ static void ufs_trunc_branch(struct inode *inode, unsigned *offsets, int depth2,
		return;
	}

	if (--depth) {
	if (--depth2) {
		void *ind = ubh_get_data_ptr(uspi, ubh, from++);
			ufs_trunc_branch(inode, offsets, depth2, depth, ind);
		ufs_trunc_branch(inode, offsets, depth2, depth - 1, ind);
		ubh_mark_buffer_dirty(ubh);
	}
	if (--depth) {
		for (i = from ; i < uspi->s_apb ; i++) {
			void *ind = ubh_get_data_ptr(uspi, ubh, i);
			free_full_branch(inode, depth, ind);