summaryrefslogtreecommitdiff
path: root/source3/client/tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/client/tree.c')
-rw-r--r--source3/client/tree.c42
1 files changed, 25 insertions, 17 deletions
diff --git a/source3/client/tree.c b/source3/client/tree.c
index 872ec0f1ab..eb95511934 100644
--- a/source3/client/tree.c
+++ b/source3/client/tree.c
@@ -348,28 +348,36 @@ static void cb_select_child (GtkWidget *root_tree, GtkWidget *child,
if (smbc_stat(path1, &st1) < 0) {
- g_print("cb_select_child: Could not stat file %s, %s\n", path1,
- strerror(errno));
+ if (errno != EBUSY) {
+
+ g_print("cb_select_child: Could not stat file %s, %s\n", path1,
+ strerror(errno));
- gtk_main_quit();
+ gtk_main_quit();
- return;
+ return;
- }
-
- /* Now format each of the relevant things ... */
+ }
+ else {
- snprintf(col2, sizeof(col2), "%s%s%s%s%s%s(%0X)",
- (st1.st_mode&0x20?"A":""),
- (st1.st_mode&0x10?"D":""),
- (st1.st_mode&0x08?"V":""),
- (st1.st_mode&0x04?"S":""),
- (st1.st_mode&0x02?"H":""),
- (st1.st_mode&0x01?"R":""),
- st1.st_mode);
- snprintf(col3, sizeof(col3), "%u", st1.st_size);
- snprintf(col4, sizeof(col4), "%s", ctime(&st1.st_ctime));
+ strncpy(col2, "Device or resource busy", sizeof(col2));
+ }
+ }
+ else {
+ /* Now format each of the relevant things ... */
+
+ snprintf(col2, sizeof(col2), "%s%s%s%s%s%s(%0X)",
+ (st1.st_mode&0x20?"A":""),
+ (st1.st_mode&0x10?"D":""),
+ (st1.st_mode&0x08?"V":""),
+ (st1.st_mode&0x04?"S":""),
+ (st1.st_mode&0x02?"H":""),
+ (st1.st_mode&0x01?"R":""),
+ st1.st_mode);
+ snprintf(col3, sizeof(col3), "%u", st1.st_size);
+ snprintf(col4, sizeof(col4), "%s", ctime(&st1.st_ctime));
+ }
}
break;