Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Avoid changing file_extra_cnt during deletion.
[rsync/rsync.git]
/
generator.c
diff --git
a/generator.c
b/generator.c
index
8fd4a19
..
d17e3b9
100644
(file)
--- a/
generator.c
+++ b/
generator.c
@@
-44,8
+44,6
@@
extern int preserve_hard_links;
extern int preserve_executability;
extern int preserve_perms;
extern int preserve_times;
extern int preserve_executability;
extern int preserve_perms;
extern int preserve_times;
-extern int uid_ndx;
-extern int gid_ndx;
extern int delete_mode;
extern int delete_before;
extern int delete_during;
extern int delete_mode;
extern int delete_before;
extern int delete_during;
@@
-278,7
+276,6
@@
static void delete_in_dir(char *fbuf, struct file_struct *file, dev_t *fs_dev)
struct file_list *dirlist;
char delbuf[MAXPATHLEN];
int dlen, i;
struct file_list *dirlist;
char delbuf[MAXPATHLEN];
int dlen, i;
- int save_uid_ndx = uid_ndx;
if (!fbuf) {
change_local_filter_dir(NULL, 0, 0);
if (!fbuf) {
change_local_filter_dir(NULL, 0, 0);
@@
-310,9
+307,6
@@
static void delete_in_dir(char *fbuf, struct file_struct *file, dev_t *fs_dev)
return;
}
return;
}
- if (!uid_ndx)
- uid_ndx = ++file_extra_cnt;
-
dirlist = get_dirlist(fbuf, dlen, 0);
/* If an item in dirlist is not found in flist, delete it
dirlist = get_dirlist(fbuf, dlen, 0);
/* If an item in dirlist is not found in flist, delete it
@@
-332,7
+326,7
@@
static void delete_in_dir(char *fbuf, struct file_struct *file, dev_t *fs_dev)
* a delete_item call with a DEL_MAKE_ROOM flag. */
if (flist_find_ignore_dirness(cur_flist, fp) < 0) {
int flags = DEL_RECURSE;
* a delete_item call with a DEL_MAKE_ROOM flag. */
if (flist_find_ignore_dirness(cur_flist, fp) < 0) {
int flags = DEL_RECURSE;
- if (!(fp->mode & S_IWUSR) && !am_root &&
(uid_t)F_OWNER(fp) == our_uid
)
+ if (!(fp->mode & S_IWUSR) && !am_root &&
fp->flags & FLAG_OWNED_BY_US
)
flags |= DEL_NO_UID_WRITE;
f_name(fp, delbuf);
if (delete_during == 2) {
flags |= DEL_NO_UID_WRITE;
f_name(fp, delbuf);
if (delete_during == 2) {
@@
-344,11
+338,6
@@
static void delete_in_dir(char *fbuf, struct file_struct *file, dev_t *fs_dev)
}
flist_free(dirlist);
}
flist_free(dirlist);
-
- if (!save_uid_ndx) {
- --file_extra_cnt;
- uid_ndx = 0;
- }
}
/* This deletes any files on the receiving side that are not present on the
}
/* This deletes any files on the receiving side that are not present on the
@@
-1233,7
+1222,7
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
if (need_fuzzy_dirlist && S_ISREG(file->mode)) {
strlcpy(fnamecmpbuf, dn, sizeof fnamecmpbuf);
if (need_fuzzy_dirlist && S_ISREG(file->mode)) {
strlcpy(fnamecmpbuf, dn, sizeof fnamecmpbuf);
- fuzzy_dirlist = get_dirlist(fnamecmpbuf, -1,
1
);
+ fuzzy_dirlist = get_dirlist(fnamecmpbuf, -1,
GDL_IGNORE_FILTER_RULES
);
need_fuzzy_dirlist = 0;
}
need_fuzzy_dirlist = 0;
}