* 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
*/
#define PNODES_PER_CHUNK ((8 * 1024) / sizeof(struct pnode) - 2)
-#if ZERO_SUM_MEMORY
+#ifdef ZERO_SUM_MEMORY
/*
* Allocation information for pnodes bulk allocation.
*/
for (i = 0; i < NAMES_TABLE_LEN; i++)
LIST_INIT(&names[i]);
-#if ZERO_SUM_MEMORY
+#ifdef ZERO_SUM_MEMORY
LIST_INIT(&pnblocks);
#endif
TAILQ_INIT(&_sysio_pnodes);
more_pnodes()
{
size_t n;
-#if ZERO_SUM_MEMORY
+#ifdef ZERO_SUM_MEMORY
struct pnodes_block *pnblk;
#endif
struct pnode *pno;
-#if ZERO_SUM_MEMORY
+#ifdef ZERO_SUM_MEMORY
pnblk = malloc(sizeof(struct pnodes_block));
pno = NULL;
if (pnblk) {
} while (--n);
}
-#if ZERO_SUM_MEMORY
+#ifdef ZERO_SUM_MEMORY
/*
* Shutdown
*/
unsigned mask,
struct intnl_stat *stbuf)
{
- /* It is possible that pno is null (for ftruncate call). */
+ /*
+ * It is possible that pno is null (for ftruncate call).
+ */
- if (pno) {
- assert(!(pno->p_base->pb_ino && ino) || pno->p_base->pb_ino == ino);
- if (IS_RDONLY(pno, ino))
- return -EROFS;
- }
- if (!ino && pno->p_base->pb_ino)
+ if (pno)
+ assert(!ino || pno->p_base->pb_ino == ino);
+ if (!ino)
ino = pno->p_base->pb_ino;
+ assert(ino);
+
+ if (pno && IS_RDONLY(pno))
+ return -EROFS;
+
+ /*
+ * Determining permission to change the attributes is
+ * difficult, at best. Just try it.
+ */
return (*ino->i_ops.inop_setattr)(pno, ino, mask, stbuf);
}