lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110524210721.GD26055@thunk.org>
Date:	Tue, 24 May 2011 17:07:21 -0400
From:	Ted Ts'o <tytso@....edu>
To:	Yongqiang Yang <xiaoqiangnk@...il.com>
Cc:	linux-ext4@...r.kernel.org
Subject: Re: [PATCH v2] ext4:Teach ext4_ext_split to caculate extents
 efficiently.

On Mon, May 23, 2011 at 05:30:57PM +0800, Yongqiang Yang wrote:
> @@ -982,20 +997,13 @@ static int ext4_ext_split(handle_t *handle, struct inode *inode,
>  			err = -EIO;
>  			goto cleanup;
>  		}
> -		while (path[i].p_idx <= EXT_MAX_INDEX(path[i].p_hdr)) {
> -			ext_debug("%d: move %d:%llu in new index %llu\n", i,
> -					le32_to_cpu(path[i].p_idx->ei_block),
> -					ext4_idx_pblock(path[i].p_idx),
> -					newblock);
> -			/*memmove(++fidx, path[i].p_idx++,
> -					sizeof(struct ext4_extent_idx));
> -			neh->eh_entries++;
> -			BUG_ON(neh->eh_entries > neh->eh_max);*/
> -			path[i].p_idx++;
> -			m++;
> -		}
> +		/* start copy indexes */
> +		m = EXT_MAX_INDEX(path[i].p_hdr) - path[i].p_idx++;
> +		ext_debug("cur 0x%p, last 0x%p\n", path[i].p_idx,
> +				EXT_MAX_INDEX(path[i].p_hdr));
> +		ext4_ext_show_move(inode, path, newblock, i);
>  		if (m) {
> -			memmove(++fidx, path[i].p_idx - m,
> +			memmove(++fidx, path[i].p_idx,
>  				sizeof(struct ext4_extent_idx) * m);
>  			le16_add_cpu(&neh->eh_entries, m);
>  		}

So the old code mutates path[i].p_idx, where as your new code doesn't.
The one thing that scares me is that ext4_ext_insert_index() is passed
&path[at], the function preferences path[at].p_idx.

Have you looked at this case?

					- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ