projects
/
debian
/
amanda
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported Upstream version 3.3.0
[debian/amanda]
/
ndmp-src
/
ndma_tape.c
diff --git
a/ndmp-src/ndma_tape.c
b/ndmp-src/ndma_tape.c
index b27c1cb05e10c8b5ef37eefa580d045ee8d84b36..c3271acb3b2598bc29da03c18c33f8128c716739 100644
(file)
--- a/
ndmp-src/ndma_tape.c
+++ b/
ndmp-src/ndma_tape.c
@@
-468,8
+468,8
@@
ndmta_write_quantum (struct ndm_session *sess)
ndmp9_error error;
again:
ndmp9_error error;
again:
- n_read = n_avail = ndmchan_n_avail
(ch
);
- if (n_avail
== 0
) {
+ n_read = n_avail = ndmchan_n_avail
_record (ch, count
);
+ if (n_avail
< count
) {
/* allow to drain */
return did_something;
}
/* allow to drain */
return did_something;
}
@@
-487,7
+487,7
@@
ndmta_write_quantum (struct ndm_session *sess)
if (n_read > ta->mover_state.bytes_left_to_read)
n_read = ta->mover_state.bytes_left_to_read;
if (n_read > ta->mover_state.bytes_left_to_read)
n_read = ta->mover_state.bytes_left_to_read;
- if (n_read
== 0
) {
+ if (n_read
< count
) {
/* Active, but paused awaiting MOVER_READ request */
return did_something; /* mover blocked */
}
/* Active, but paused awaiting MOVER_READ request */
return did_something; /* mover blocked */
}
@@
-587,6
+587,10
@@
ndmta_write_quantum (struct ndm_session *sess)
n_avail = ta->mover_state.record_size - record_off;
if (n_read > n_avail)
n_read = n_avail;
n_avail = ta->mover_state.record_size - record_off;
if (n_read > n_avail)
n_read = n_avail;
+ if (n_read != done_count) {
+ dbprintf("lost %lu bytes %lu %u\n", done_count - n_read, done_count, n_read);
+ n_read = done_count;
+ }
data = &ta->tape_buffer[record_off];
data = &ta->tape_buffer[record_off];