#include "path-util.h"
#include "copy.h"
#include "mkdir.h"
+#include "rm-rf.h"
#include "machine-image.h"
static const char image_search_path[] =
case IMAGE_DIRECTORY:
/* Allow deletion of read-only directories */
(void) chattr_path(i->path, false, FS_IMMUTABLE_FL);
-
- /* fall through */
+ return rm_rf(i->path, REMOVE_ROOT|REMOVE_PHYSICAL|REMOVE_SUBVOLUME);
case IMAGE_RAW:
- return rm_rf_dangerous(i->path, false, true, false);
+ if (unlink(i->path) < 0)
+ return -errno;
+
+ return 0;
default:
- return -ENOTSUP;
+ return -EOPNOTSUPP;
}
}
}
default:
- return -ENOTSUP;
+ return -EOPNOTSUPP;
}
if (!new_path)
if (!nn)
return -ENOMEM;
- if (renameat2(AT_FDCWD, i->path, AT_FDCWD, new_path, RENAME_NOREPLACE) < 0)
- return -errno;
+ r = rename_noreplace(AT_FDCWD, i->path, AT_FDCWD, new_path);
+ if (r < 0)
+ return r;
/* Restore the immutable bit, if it was set before */
if (file_attr & FS_IMMUTABLE_FL)
break;
default:
- return -ENOTSUP;
+ return -EOPNOTSUPP;
}
if (r < 0)
}
default:
- return -ENOTSUP;
+ return -EOPNOTSUPP;
}
return 0;
return -EROFS;
if (i->type != IMAGE_SUBVOLUME)
- return -ENOTSUP;
+ return -EOPNOTSUPP;
return btrfs_quota_limit(i->path, referenced_max);
}