From owner-freebsd-bugs@FreeBSD.ORG Wed Mar 7 20:21:34 2012 Return-Path: Delivered-To: freebsd-bugs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6CFE4106564A for ; Wed, 7 Mar 2012 20:21:34 +0000 (UTC) (envelope-from luis.garces@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id E623E8FC0C for ; Wed, 7 Mar 2012 20:21:33 +0000 (UTC) Received: by lagv3 with SMTP id v3so10867485lag.13 for ; Wed, 07 Mar 2012 12:21:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=/pK7sfLA1VAyvYSDDAa+PgSJNUnnL2m5zqS6wBrEk7E=; b=kGQD73jvY8qxX0JCLKbt1vb60QBihLbXD5C4oEP4h6PZsxSqq6w4hPs5ZuNTO2fYGI fDrK3uCo49mBsCRfcDcbQJ/Q+wl6upUD6GANL/zHFgfFOiO5HC+HjcloiOnuBiQwNVqL gYVnogHzVINLxjdE5NSst/VK2jWG0gFOepNz8CavjjrAwnJK+O4O/Ak9WuZAcGaORZuz 3DggM7FyDj8vmTmO1bNRjuO/XEatWn1qEuTGXtpD+vS2tG0HmcYGyU/xy14Bu80iTTsK jt05JWNZP8LhfEKYAGbNK9IbcxfGy6r4PBP0+xACQ7/shUOtbsCm47qL5Pgtktvgsa3M SfNQ== MIME-Version: 1.0 Received: by 10.152.135.104 with SMTP id pr8mr2348051lab.27.1331150015847; Wed, 07 Mar 2012 11:53:35 -0800 (PST) Received: by 10.112.17.195 with HTTP; Wed, 7 Mar 2012 11:53:35 -0800 (PST) Date: Wed, 7 Mar 2012 20:53:35 +0100 Message-ID: From: Luis Garces-Erice To: freebsd-bugs@freebsd.org Content-Type: multipart/mixed; boundary=f46d04426bd6d65b2504baac8337 Subject: kern/164445: [zfs][patch] WAS: lseek(2) always returns ENXIO with SEEK_DATA/SEEK_HOLE on 9.0 64bit ZFS X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Mar 2012 20:21:34 -0000 --f46d04426bd6d65b2504baac8337 Content-Type: text/plain; charset=ISO-8859-1 Hi all after digging a bit more into this (http://www.freebsd.org/cgi/query-pr.cgi?pr=164445), I've found the problem to be in ZFS or below. The patch attached addresses the symptom, but the problem remains. When invoking SEEK_DATA/SEEK_HOLE on a file on ZFS in FreeBSD 9.0 64 bit, the functions ddi_copyin and ddi_copyout in zfs_ioctl() do not copy the offset passed from the application to the ioctl. The offset is passed correctly to zfs_ioctl(), though, but those functions copy garbage into the offset used by zfs_holey(). The corrupted offset is often bigger than the file, and thus the ioctl returns ENXIO. The patch does the copy of the offset passed from the application correctly, and allows lseek(2) with SEEK_DATA/SEEK_HOLE to be used on ZFS, but it is not a solution. I couldn't see a problem in the assembler of the copyin and copyout functions in sys/amd64/amd64/support.S, but I might be wrong, I'm no assembler expert. -- Luis **** --f46d04426bd6d65b2504baac8337 Content-Type: text/plain; charset=US-ASCII; name="zfs_vnops.c.patch.txt" Content-Disposition: attachment; filename="zfs_vnops.c.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gzis96840 ZGlmZiAtdyAtdSAtciBzeXMub3JpZy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1v bi9mcy96ZnMvemZzX3Zub3BzLmMgc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29t bW9uL2ZzL3pmcy96ZnNfdm5vcHMuYwotLS0gc3lzLm9yaWcvY2RkbC9jb250cmliL29wZW5zb2xh cmlzL3V0cy9jb21tb24vZnMvemZzL3pmc192bm9wcy5jCTIwMTItMDEtMDMgMDQ6Mjc6MDMuMDAw MDAwMDAwICswMTAwCisrKyBzeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24v ZnMvemZzL3pmc192bm9wcy5jCTIwMTItMDMtMDYgMTE6MjY6MjcuMDAwMDAwMDAwICswMTAwCkBA IC0yOTYsNiArMjk2LDggQEAKIAkJaWYgKGRkaV9jb3B5aW4oKHZvaWQgKilkYXRhLCAmb2ZmLCBz aXplb2YgKG9mZiksIGZsYWcpKQogCQkJcmV0dXJuIChFRkFVTFQpOwogCisJCS8vIGRkaV9jb3B5 aW4gZGlkIG5vdCBjb3B5IHRoZSBvZmZzZXQKKwkJb2ZmID0gKG9mZnNldF90KSooKG9mZnNldF90 ICopZGF0YSk7CiAJCXpwID0gVlRPWih2cCk7CiAJCXpmc3ZmcyA9IHpwLT56X3pmc3ZmczsKIAkJ WkZTX0VOVEVSKHpmc3Zmcyk7CkBAIC0zMDgsNiArMzEwLDggQEAKIAkJCXJldHVybiAoZXJyb3Ip OwogCQlpZiAoZGRpX2NvcHlvdXQoJm9mZiwgKHZvaWQgKilkYXRhLCBzaXplb2YgKG9mZiksIGZs YWcpKQogCQkJcmV0dXJuIChFRkFVTFQpOworCQkvLyBkZGlfY29weW91dCBkaWQgbm90IGNvcHkg dGhlIG9mZnNldAorCQkqKChvZmZzZXRfdCAqKWRhdGEpPW9mZjsKIAkJcmV0dXJuICgwKTsKIAl9 CiAJcmV0dXJuIChFTk9UVFkpOwo= --f46d04426bd6d65b2504baac8337--