union_subr.c (f9e28f900353ca8681fa1815afaebaca16ef254b) | union_subr.c (b4a58fbf640409a1e507d9f7b411c83a3f83a2f3) |
---|---|
1/*- 2 * SPDX-License-Identifier: BSD-3-Clause 3 * 4 * Copyright (c) 1994 Jan-Simon Pendry 5 * Copyright (c) 1994 6 * The Regents of the University of California. All rights reserved. 7 * Copyright (c) 2005, 2006, 2012 Masanori Ozawa <ozawa@ongs.co.jp>, ONGS Inc. 8 * Copyright (c) 2006, 2012 Daichi Goto <daichi@freebsd.org> --- 616 unchanged lines hidden (view full) --- 625{ 626 int error; 627 628 cn->cn_namelen = pathlen; 629 cn->cn_pnbuf = path; 630 cn->cn_nameiop = nameiop; 631 cn->cn_flags = (LOCKPARENT | LOCKLEAF | HASBUF | SAVENAME | ISLASTCN); 632 cn->cn_lkflags = LK_EXCLUSIVE; | 1/*- 2 * SPDX-License-Identifier: BSD-3-Clause 3 * 4 * Copyright (c) 1994 Jan-Simon Pendry 5 * Copyright (c) 1994 6 * The Regents of the University of California. All rights reserved. 7 * Copyright (c) 2005, 2006, 2012 Masanori Ozawa <ozawa@ongs.co.jp>, ONGS Inc. 8 * Copyright (c) 2006, 2012 Daichi Goto <daichi@freebsd.org> --- 616 unchanged lines hidden (view full) --- 625{ 626 int error; 627 628 cn->cn_namelen = pathlen; 629 cn->cn_pnbuf = path; 630 cn->cn_nameiop = nameiop; 631 cn->cn_flags = (LOCKPARENT | LOCKLEAF | HASBUF | SAVENAME | ISLASTCN); 632 cn->cn_lkflags = LK_EXCLUSIVE; |
633 cn->cn_thread = td; | |
634 cn->cn_cred = cnp->cn_cred; 635 cn->cn_nameptr = cn->cn_pnbuf; 636 637 if (nameiop == DELETE) 638 cn->cn_flags |= (cnp->cn_flags & (DOWHITEOUT | SAVESTART)); 639 else if (RENAME == nameiop) 640 cn->cn_flags |= (cnp->cn_flags & SAVESTART); 641 else if (nameiop == CREATE) --- 328 unchanged lines hidden (view full) --- 970 panic("unionfs: un_path is null"); 971 972 nd.ni_cnd.cn_namelen = unp->un_pathlen; 973 nd.ni_cnd.cn_pnbuf = unp->un_path; 974 nd.ni_cnd.cn_nameiop = CREATE; 975 nd.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | HASBUF | SAVENAME | 976 ISLASTCN; 977 nd.ni_cnd.cn_lkflags = LK_EXCLUSIVE; | 633 cn->cn_cred = cnp->cn_cred; 634 cn->cn_nameptr = cn->cn_pnbuf; 635 636 if (nameiop == DELETE) 637 cn->cn_flags |= (cnp->cn_flags & (DOWHITEOUT | SAVESTART)); 638 else if (RENAME == nameiop) 639 cn->cn_flags |= (cnp->cn_flags & SAVESTART); 640 else if (nameiop == CREATE) --- 328 unchanged lines hidden (view full) --- 969 panic("unionfs: un_path is null"); 970 971 nd.ni_cnd.cn_namelen = unp->un_pathlen; 972 nd.ni_cnd.cn_pnbuf = unp->un_path; 973 nd.ni_cnd.cn_nameiop = CREATE; 974 nd.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | HASBUF | SAVENAME | 975 ISLASTCN; 976 nd.ni_cnd.cn_lkflags = LK_EXCLUSIVE; |
978 nd.ni_cnd.cn_thread = td; | |
979 nd.ni_cnd.cn_cred = cred; 980 nd.ni_cnd.cn_nameptr = nd.ni_cnd.cn_pnbuf; 981 NDPREINIT(&nd); 982 983 vref(udvp); 984 if ((error = relookup(udvp, &vp, &nd.ni_cnd)) != 0) 985 goto unionfs_vn_create_on_upper_free_out2; 986 vrele(udvp); --- 258 unchanged lines hidden (view full) --- 1245 1246 cn.cn_namelen = dp->d_namlen; 1247 cn.cn_pnbuf = NULL; 1248 cn.cn_nameptr = dp->d_name; 1249 cn.cn_nameiop = LOOKUP; 1250 cn.cn_flags = LOCKPARENT | LOCKLEAF | SAVENAME | 1251 RDONLY | ISLASTCN; 1252 cn.cn_lkflags = LK_EXCLUSIVE; | 977 nd.ni_cnd.cn_cred = cred; 978 nd.ni_cnd.cn_nameptr = nd.ni_cnd.cn_pnbuf; 979 NDPREINIT(&nd); 980 981 vref(udvp); 982 if ((error = relookup(udvp, &vp, &nd.ni_cnd)) != 0) 983 goto unionfs_vn_create_on_upper_free_out2; 984 vrele(udvp); --- 258 unchanged lines hidden (view full) --- 1243 1244 cn.cn_namelen = dp->d_namlen; 1245 cn.cn_pnbuf = NULL; 1246 cn.cn_nameptr = dp->d_name; 1247 cn.cn_nameiop = LOOKUP; 1248 cn.cn_flags = LOCKPARENT | LOCKLEAF | SAVENAME | 1249 RDONLY | ISLASTCN; 1250 cn.cn_lkflags = LK_EXCLUSIVE; |
1253 cn.cn_thread = td; | |
1254 cn.cn_cred = cred; 1255 1256 /* 1257 * check entry in lower. 1258 * Sometimes, readdir function returns 1259 * wrong entry. 1260 */ 1261 lookuperr = VOP_LOOKUP(lvp, &tvp, &cn); --- 75 unchanged lines hidden --- | 1251 cn.cn_cred = cred; 1252 1253 /* 1254 * check entry in lower. 1255 * Sometimes, readdir function returns 1256 * wrong entry. 1257 */ 1258 lookuperr = VOP_LOOKUP(lvp, &tvp, &cn); --- 75 unchanged lines hidden --- |