X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fincremen.c;h=d4ef30a1add3af2cb526d79f52026f45528a4320;hb=5e01ba7dbe35dca6c68415c5d9e9d6fb516fc560;hp=ec8a86dfe4dc3c1f38fd6be2051aa76ffd482c0b;hpb=f03fc1e078693d5315031739cf15b092349ab93c;p=chaz%2Ftar diff --git a/src/incremen.c b/src/incremen.c index ec8a86d..d4ef30a 100644 --- a/src/incremen.c +++ b/src/incremen.c @@ -150,6 +150,7 @@ procdir (char *name_buffer, struct stat *stat_data, { struct directory *directory; bool nfs = NFS_FILE_STAT (*stat_data); + struct name *np; if ((directory = find_directory (name_buffer)) != NULL) { @@ -202,8 +203,12 @@ procdir (char *name_buffer, struct stat *stat_data, ? ALL_CHILDREN : CHANGED_CHILDREN; } - - if (one_file_system_option && device != stat_data->st_dev) + + /* If the directory is on another device and --one-file-system was given, + omit it... */ + if (one_file_system_option && device != stat_data->st_dev + /* ... except if it was explicitely given in the command line */ + && !((np = name_scan (name_buffer, true)) && np->explicit)) directory->children = NO_CHILDREN; else if (children == ALL_CHILDREN) directory->children = ALL_CHILDREN;