From: Miklos S. <mi...@sz...> - 2006-10-09 15:34:17
|
> and the debug output: > > unique: 168, opcode: GETATTR (3), nodeid: 35, insize: 40 > unique: 168, error: 0 (Success), outsize: 112 > unique: 169, opcode: LOOKUP (1), nodeid: 33, insize: 48 > LOOKUP /home/jasanchez/xml.pdf > NODEID: 36 > unique: 169, error: 0 (Success), outsize: 136 > unique: 170, opcode: LOOKUP (1), nodeid: 35, insize: 48 > LOOKUP /home/jasanchez/TransFSTest/xml.pdf > Error reading stats from /home/jasanchez/TransFSTest/xml.pdf: No such > file or directory > unique: 170, error: -29 (Illegal seek), outsize: 16 > > It succees in finding stats for /home/jasanchez/xml.pdf but it fails > because /home/jasanchez/TransFSTest/xml.pdf does not exist and that's > normal because I'm copying it. Yes, the problem is not that there's an error, but that it's the wrong error (EPIPE instead of ENOENT). And that is because the errno variable is clobbered somewhere between the actual operations and the point you return it. The solution is to save errno immediately after the operation, and return the saved value. Miklos |