* terms of the GNU Lesser General Public License
* (see cit/LGPL or http://www.gnu.org/licenses/lgpl.html)
*
- * Cplant(TM) Copyright 1998-2003 Sandia Corporation.
+ * Cplant(TM) Copyright 1998-2006 Sandia Corporation.
* Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
* license for use of this work by or on behalf of the US Government.
* Export of this program may require a license from the United States
SYSIO_INTERFACE_ENTER;
INTENT_INIT(&intent, INT_CREAT, NULL, NULL);
- err = _sysio_namei(_sysio_cwd, newpath, ND_NOFOLLOW | ND_NEGOK, &intent, &pno);
+ err =
+ _sysio_namei(_sysio_cwd,
+ newpath,
+ ND_NOFOLLOW|ND_NEGOK,
+ &intent,
+ &pno);
if (err)
goto out;
if (pno->p_base->pb_ino) {
err = -EEXIST;
goto error;
}
-
- if (IS_RDONLY(pno, pno->p_base->pb_ino)) {
- err = -EROFS;
+ err = _sysio_permitted(pno->p_parent, W_OK);
+ if (err)
goto error;
- }
+
/*
* Use the parent node operations to request the task in case the
* driver is implemented using differentiated inode operations based