diff --git a/lib/fs.js b/lib/fs.js index b6af9e25539b69..6362fab54a1c98 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -310,7 +310,7 @@ ReadFileContext.prototype.read = function() { req.oncomplete = readFileAfterRead; req.context = this; - binding.read(this.fd, buffer, offset, length, this.pos, req); + binding.read(this.fd, buffer, offset, length, -1, req); }; ReadFileContext.prototype.close = function(err) { @@ -447,11 +447,11 @@ function tryCreateBuffer(size, fd, isUserFd) { return buffer; } -function tryReadSync(fd, isUserFd, buffer, pos, len, offset) { +function tryReadSync(fd, isUserFd, buffer, pos, len) { var threw = true; var bytesRead; try { - bytesRead = fs.readSync(fd, buffer, pos, len, offset); + bytesRead = fs.readSync(fd, buffer, pos, len); threw = false; } finally { if (threw && !isUserFd) fs.closeSync(fd); @@ -480,7 +480,7 @@ fs.readFileSync = function(path, options) { if (size !== 0) { do { - bytesRead = tryReadSync(fd, isUserFd, buffer, pos, size - pos, pos); + bytesRead = tryReadSync(fd, isUserFd, buffer, pos, size - pos); pos += bytesRead; } while (bytesRead !== 0 && pos < size); } else { @@ -488,7 +488,7 @@ fs.readFileSync = function(path, options) { // the kernel lies about many files. // Go ahead and try to read some bytes. buffer = Buffer.allocUnsafe(8192); - bytesRead = tryReadSync(fd, isUserFd, buffer, 0, 8192, pos); + bytesRead = tryReadSync(fd, isUserFd, buffer, 0, 8192); if (bytesRead !== 0) { buffers.push(buffer.slice(0, bytesRead)); } diff --git a/test/parallel/test-fs-readfile-fd-offset.js b/test/parallel/test-fs-readfile-fd-offset.js deleted file mode 100644 index 0a02685319369e..00000000000000 --- a/test/parallel/test-fs-readfile-fd-offset.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const fs = require('fs'); -const path = require('path'); - -const filename = path.join(common.tmpDir, 'readfile.txt'); -const dataExpected = 'a'.repeat(100); -fs.writeFileSync(filename, dataExpected); -const fileLength = dataExpected.length; - -['r', 'a+'].forEach((mode) => { - const fd = fs.openSync(filename, mode); - assert.strictEqual(fs.readFileSync(fd).length, fileLength); - - // Reading again should result in the same length. - assert.strictEqual(fs.readFileSync(fd).length, fileLength); - - fs.readFile(fd, common.mustCall((err, buf) => { - assert.ifError(err); - assert.strictEqual(buf.length, fileLength); - })); -});