On Tue, 3 Jan 2012 13:46:00 -0600, Dan McGee wrote:
> When running as non-root, the error message seems to indicate a
> checkpoint is a snapshot, rather than the actual problem, which is that
> I do not have permission to delete the checkpoints.
>
> Before:
> $ rmcp 29..35
> rmcp: 29: cannot remove snapshot
> rmcp: 30: cannot remove snapshot
> rmcp: 31: cannot remove snapshot
> rmcp: 32: cannot remove snapshot
> rmcp: 33: cannot remove snapshot
> rmcp: 34: cannot remove snapshot
> rmcp: 35: cannot remove snapshot
>
> To delete snapshot(s), change them into checkpoints with
> chcp command before removal.
>
> After:
> $ ./bin/rmcp 29..35
> lt-rmcp: 29: cannot remove checkpoint: Operation not permitted
> Remaining checkpoints were not removed.
>
> Since May 2009 the kernel has returned EBUSY instead of EPERM for
> removal requests against snapshots, commit 30c25be71fcbd87fd. We should
> be able to treat EPERM as expected now, as the commit message there
> indicates.
>
> Signed-off-by: Dan McGee <[email protected]>
All your patches were applied to nilfs-utils git repository.
Thank you very much.
Ryusuke Konishi
> ---
> bin/rmcp.c | 11 ++++++++---
> 1 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/bin/rmcp.c b/bin/rmcp.c
> index 780a192..9f4666a 100644
> --- a/bin/rmcp.c
> +++ b/bin/rmcp.c
> @@ -105,7 +105,7 @@ static int rmcp_remove_range(struct nilfs *nilfs,
> nd++;
> continue;
> }
> - if (errno == EBUSY || errno == EPERM) {
> + if (errno == EBUSY) {
> nss++;
> if (!force) {
> fprintf(stderr,
> @@ -115,7 +115,10 @@ static int rmcp_remove_range(struct nilfs *nilfs,
> } else if (errno == ENOENT) {
> nocp++;
> } else {
> - fprintf(stderr, "%s: %s\n", progname, strerror(errno));
> + fprintf(stderr,
> + "%s: %llu: cannot remove checkpoint: %s\n",
> + progname, (unsigned long long)cno,
> + strerror(errno));
> ret = -1;
> goto out;
> }
> @@ -237,8 +240,10 @@ int main(int argc, char *argv[])
> continue;
>
> status = 1;
> - if (ret < 0)
> + if (ret < 0) {
> + fprintf(stderr, "Remaining checkpoints were not
> removed.\n");
> break;
> + }
>
> if (force || ndel != 0 || end - start + 1 - nss == 0)
> continue;
> --
> 1.7.8.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html