* Copyright (C) 2003-2007 Wayne Davison
*
* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
+ * it under the terms of the GNU General Public License version 3 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ * with this program; if not, visit the http://fsf.org website.
*/
#define False 0
};
extern int file_extra_cnt;
-extern int preserve_uid;
-extern int preserve_gid;
-extern int preserve_acls;
-extern int preserve_xattrs;
+extern int uid_ndx;
+extern int gid_ndx;
+extern int acls_ndx;
+extern int xattrs_ndx;
#define FILE_STRUCT_LEN (offsetof(struct file_struct, basename))
#define EXTRA_LEN (sizeof (union file_extras))
#define F_DEPTH(f) REQ_EXTRA(f, 1)->num
/* When the associated option is on, all entries will have these present: */
-#define F_OWNER(f) REQ_EXTRA(f, preserve_uid)->unum
-#define F_GROUP(f) REQ_EXTRA(f, preserve_gid)->unum
-#define F_ACL(f) REQ_EXTRA(f, preserve_acls)->num
-#define F_XATTR(f) REQ_EXTRA(f, preserve_xattrs)->num
+#define F_OWNER(f) REQ_EXTRA(f, uid_ndx)->unum
+#define F_GROUP(f) REQ_EXTRA(f, gid_ndx)->unum
+#define F_ACL(f) REQ_EXTRA(f, acls_ndx)->num
+#define F_XATTR(f) REQ_EXTRA(f, xattrs_ndx)->num
#define F_NDX(f) REQ_EXTRA(f, ic_ndx)->num
/* These items are per-entry optional and mutally exclusive: */
* (when they happen). Smaller sizes increase the chance of
* freed allocations freeing whole extents.
*/
-#define FILE_EXTENT (256 * 1024)
-#define HLINK_EXTENT (128 * 1024)
+#define NORMAL_EXTENT (256 * 1024)
+#define SMALL_EXTENT (128 * 1024)
#define FLIST_TEMP (1<<1)
struct file_list *next, *prev;
struct file_struct **files, **sorted;
alloc_pool_t file_pool;
- int count, malloced;
- int low, high; /* 0-relative index values excluding empties */
- int ndx_start; /* the start offset for inc_recurse mode */
+ void *pool_boundary;
+ int used, malloced;
+ int low, high; /* 0-relative index values excluding empties */
+ int ndx_start; /* the start offset for inc_recurse mode */
int parent_ndx; /* dir_flist index of parent directory */
int in_progress, to_redo;
};