Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/lib/libp2k Remove the componentname-saving code since it was...
details: https://anonhg.NetBSD.org/src/rev/01091528f0e6
branches: trunk
changeset: 760539:01091528f0e6
user: pooka <pooka%NetBSD.org@localhost>
date: Fri Jan 07 11:15:30 2011 +0000
description:
Remove the componentname-saving code since it was addressing
SAVENAME/HASBUF/SAVESTART and they don't exist anymore (and the
removed code didn't compile on nb5).
diffstat:
lib/libp2k/p2k.c | 90 ++-----------------------------------------------------
1 files changed, 4 insertions(+), 86 deletions(-)
diffs (143 lines):
diff -r babb6629e8b1 -r 01091528f0e6 lib/libp2k/p2k.c
--- a/lib/libp2k/p2k.c Fri Jan 07 10:45:45 2011 +0000
+++ b/lib/libp2k/p2k.c Fri Jan 07 11:15:30 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: p2k.c,v 1.50 2011/01/07 10:18:06 pooka Exp $ */
+/* $NetBSD: p2k.c,v 1.51 2011/01/07 11:15:30 pooka Exp $ */
/*
* Copyright (c) 2007, 2008, 2009 Antti Kantee. All Rights Reserved.
@@ -85,16 +85,6 @@
struct p2k_node {
struct vnode *p2n_vp;
- /*
- * Ok, then, uhm, we need .. *drumroll*.. two componentname
- * storages for rename. This is because the source dir is
- * unlocked after the first lookup, and someone else might
- * race in here. However, we know it's not another rename
- * because of the kernel rename lock. And we need two since
- * srcdir and targdir might be the same. It's a wonderful world.
- */
- struct componentname *p2n_cn_ren_src, *p2n_cn_ren_targ;
-
LIST_ENTRY(p2k_node) p2n_entries;
};
@@ -304,7 +294,6 @@
PUFFSOP_SET(pops, p2k, node, inactive);
PUFFSOP_SET(pops, p2k, node, reclaim);
- PUFFSOP_SET(pops, p2k, node, abortop);
PUFFSOP_SET(pops, p2k, node, getextattr);
PUFFSOP_SET(pops, p2k, node, setextattr);
@@ -677,37 +666,7 @@
RUMP_VOP_LOCK(dvp, LK_EXCLUSIVE);
rv = RUMP_VOP_LOOKUP(dvp, &vp, cn);
RUMP_VOP_UNLOCK(dvp);
-
- /*
- * XXX the rename lookup protocol is currently horribly
- * broken. We get 1) DELETE 2) DELETE with INRELOOKUP
- * 3) RENAME. Hold on to this like
- * it were the absolute truth for now. However, do
- * not sprinkle asserts based on this due to abovementioned
- * brokenness -- some file system drivers might not
- * even issue ABORT properly, so just free resources
- * on the fly and hope for the best. PR kern/42348
- */
- if (pcn->pcn_flags & RUMP_NAMEI_INRENAME) {
- if (pcn->pcn_nameiop == RUMP_NAMEI_DELETE) {
- /* save path from the first lookup */
- if ((pcn->pcn_flags & RUMP_NAMEI_INRELOOKUP) == 0) {
- if (p2n_dir->p2n_cn_ren_src)
- freecn(p2n_dir->p2n_cn_ren_src);
- p2n_dir->p2n_cn_ren_src = cn;
- } else {
- freecn(cn);
- cn = NULL;
- }
- } else {
- assert(pcn->pcn_nameiop == RUMP_NAMEI_RENAME);
- if (p2n_dir->p2n_cn_ren_targ)
- freecn(p2n_dir->p2n_cn_ren_targ);
- p2n_dir->p2n_cn_ren_targ = cn;
- }
- } else {
- freecn(cn);
- }
+ freecn(cn);
if (rv) {
if (rv == EJUSTRETURN) {
@@ -719,15 +678,6 @@
p2n = getp2n(p2m, vp, false, NULL);
if (p2n == NULL) {
- if (pcn->pcn_flags & RUMP_NAMEI_INRENAME) {
- if (pcn->pcn_nameiop == RUMP_NAMEI_DELETE) {
- p2n_dir->p2n_cn_ren_src = NULL;
- } else {
- p2n_dir->p2n_cn_ren_targ = NULL;
- }
-
- RUMP_VOP_ABORTOP(dvp, cn);
- }
return ENOMEM;
}
@@ -1003,26 +953,6 @@
return rv;
}
-/*ARGSUSED*/
-int
-p2k_node_abortop(struct puffs_usermount *pu, puffs_cookie_t opc,
- const struct puffs_cn *pcn)
-{
- struct p2k_node *p2n_dir = opc;
- struct componentname *cnp;
-
- if ((cnp = p2n_dir->p2n_cn_ren_src) != NULL) {
- freecn(cnp);
- p2n_dir->p2n_cn_ren_src = NULL;
- }
- if ((cnp = p2n_dir->p2n_cn_ren_targ) != NULL) {
- freecn(cnp);
- p2n_dir->p2n_cn_ren_targ = NULL;
- }
-
- return 0;
-}
-
static int
do_nukenode(struct p2k_node *p2n_dir, struct p2k_node *p2n,
const struct puffs_cn *pcn,
@@ -1081,24 +1011,12 @@
puffs_cookie_t targ_dir, puffs_cookie_t targ,
const struct puffs_cn *pcn_targ)
{
- struct p2k_node *p2n_srcdir = src_dir, *p2n_targdir = targ_dir;
struct vnode *dvp, *vp, *tdvp, *tvp = NULL;
struct componentname *cn_src, *cn_targ;
int rv;
- if (p2n_srcdir->p2n_cn_ren_src) {
- cn_src = p2n_srcdir->p2n_cn_ren_src;
- p2n_srcdir->p2n_cn_ren_src = NULL;
- } else {
- cn_src = makecn(pcn_src);
- }
-
- if (p2n_targdir->p2n_cn_ren_targ) {
- cn_targ = p2n_targdir->p2n_cn_ren_targ;
- p2n_targdir->p2n_cn_ren_targ = NULL;
- } else {
- cn_targ = makecn(pcn_targ);
- }
+ cn_src = makecn(pcn_src);
+ cn_targ = makecn(pcn_targ);
dvp = OPC2VP(src_dir);
vp = OPC2VP(src);
Home |
Main Index |
Thread Index |
Old Index