Re: [PATCH 2/2] Btrfs: send, don't leave without decrementing clone root's send_progress

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Mar 02, 2015 at 08:53:53PM +0000, Filipe Manana wrote:
> If the clone root was not readonly or the dead flag was set on it, we were
> leaving without decrementing the root's send_progress counter (and before
> we just incremented it). If a concurrent snapshot deletion was in progress
> and ended up being aborted, it would be impossible to later attempt to
> delete again the snapshot, since the root's send_in_progress counter could
> never go back to 0.
> 
> We were also setting clone_sources_to_rollback to i + 1 too early - if we
> bailed out because the clone root we got is not readonly or flagged as dead
> we ended up later derreferencing a null pointer because we didn't assign
> the clone root to sctx->clone_roots[i].root:
> 
> 		for (i = 0; sctx && i < clone_sources_to_rollback; i++)
> 			btrfs_root_dec_send_in_progress(
> 					sctx->clone_roots[i].root);
> 
> So just don't increment the send_in_progress counter if the root is readonly
> or flagged as dead.
> 
> Signed-off-by: Filipe Manana <fdmanana@xxxxxxxx>

Reviewed-by: David Sterba <dsterba@xxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux