2001-10-03 16:34:08 +04:00
/*
2008-01-30 17:00:02 +03:00
* Copyright ( C ) 2001 - 2004 Sistina Software , Inc . All rights reserved .
2007-08-21 00:55:30 +04:00
* Copyright ( C ) 2004 - 2007 Red Hat , Inc . All rights reserved .
2001-10-03 16:34:08 +04:00
*
2004-03-30 23:35:44 +04:00
* This file is part of LVM2 .
2001-10-03 16:34:08 +04:00
*
2004-03-30 23:35:44 +04:00
* This copyrighted material is made available to anyone wishing to use ,
* modify , copy , or redistribute it subject to the terms and conditions
2007-08-21 00:55:30 +04:00
* of the GNU Lesser General Public License v .2 .1 .
2001-10-03 16:34:08 +04:00
*
2007-08-21 00:55:30 +04:00
* You should have received a copy of the GNU Lesser General Public License
2004-03-30 23:35:44 +04:00
* along with this program ; if not , write to the Free Software Foundation ,
* Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
2001-10-03 16:34:08 +04:00
*/
# include "tools.h"
2007-08-20 20:16:54 +04:00
static int lvremove_single ( struct cmd_context * cmd , struct logical_volume * lv ,
2010-07-09 19:34:40 +04:00
void * handle __attribute__ ( ( unused ) ) )
2007-08-20 20:16:54 +04:00
{
2009-04-25 05:17:59 +04:00
struct logical_volume * origin ;
/*
* If this is a sparse device , remove its origin too .
*/
if ( lv_is_cow ( lv ) & & lv_is_virtual_origin ( origin = origin_from_cow ( lv ) ) )
lv = origin ;
2012-09-19 17:13:21 +04:00
if ( ! lv_remove_with_dependencies ( cmd , lv , ( force_t ) arg_count ( cmd , force_ARG ) , 0 ) ) {
2009-09-15 02:47:49 +04:00
stack ;
2007-08-20 20:16:54 +04:00
return ECMD_FAILED ;
2009-09-15 02:47:49 +04:00
}
2007-08-20 21:04:53 +04:00
return ECMD_PROCESSED ;
2001-10-03 16:34:08 +04:00
}
2002-11-18 17:04:08 +03:00
int lvremove ( struct cmd_context * cmd , int argc , char * * argv )
{
if ( ! argc ) {
log_error ( " Please enter one or more logical volume paths " ) ;
return EINVALID_CMD_LINE ;
}
2008-09-19 10:42:00 +04:00
cmd - > handles_missing_pvs = 1 ;
2009-07-01 21:00:50 +04:00
return process_each_lv ( cmd , argc , argv , READ_FOR_UPDATE , NULL ,
2002-11-18 17:04:08 +03:00
& lvremove_single ) ;
}