fix rename (yes, it's really that simple)
This commit is contained in:
parent
45bd3a1031
commit
12999dc43c
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: refuse.c,v 1.23 2007/02/18 22:30:59 pooka Exp $ */
|
/* $NetBSD: refuse.c,v 1.24 2007/02/18 22:42:33 pooka Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright © 2007 Alistair Crooks. All rights reserved.
|
* Copyright © 2007 Alistair Crooks. All rights reserved.
|
||||||
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
#if !defined(lint)
|
#if !defined(lint)
|
||||||
__RCSID("$NetBSD: refuse.c,v 1.23 2007/02/18 22:30:59 pooka Exp $");
|
__RCSID("$NetBSD: refuse.c,v 1.24 2007/02/18 22:42:33 pooka Exp $");
|
||||||
#endif /* !lint */
|
#endif /* !lint */
|
||||||
|
|
||||||
#include <err.h>
|
#include <err.h>
|
||||||
@ -544,10 +544,9 @@ puffs_fuse_node_rename(struct puffs_cc *pcc, void *opc, void *src,
|
|||||||
const struct puffs_cn *pcn_targ)
|
const struct puffs_cn *pcn_targ)
|
||||||
{
|
{
|
||||||
struct puffs_usermount *pu = puffs_cc_getusermount(pcc);
|
struct puffs_usermount *pu = puffs_cc_getusermount(pcc);
|
||||||
struct puffs_node *pn = opc;
|
|
||||||
struct vattr va;
|
|
||||||
struct fuse *fuse;
|
struct fuse *fuse;
|
||||||
const char *path = PCNPATH(pcn_src);
|
const char *path_src = PCNPATH(pcn_src);
|
||||||
|
const char *path_dest = PCNPATH(pcn_targ);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
fuse = (struct fuse *)pu->pu_privdata;
|
fuse = (struct fuse *)pu->pu_privdata;
|
||||||
@ -555,21 +554,9 @@ puffs_fuse_node_rename(struct puffs_cc *pcc, void *opc, void *src,
|
|||||||
return ENOSYS;
|
return ENOSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* wrap up return code */
|
ret = fuse->op.rename(path_src, path_dest);
|
||||||
ret = (*fuse->op.rename)(path, PCNPATH(pcn_targ));
|
|
||||||
|
|
||||||
/* XXX: what's this guy doing??? */
|
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
(void) memcpy(&va, &pn->pn_va, sizeof(va));
|
|
||||||
|
|
||||||
puffs_pn_put(pn);
|
|
||||||
|
|
||||||
pn = puffs_pn_new(pu, NULL);
|
|
||||||
if (pn == NULL) {
|
|
||||||
return ENOMEM;
|
|
||||||
}
|
|
||||||
puffs_setvattr(&pn->pn_va, &va);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return -ret;
|
return -ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user