From owner-freebsd-fs@freebsd.org Tue Mar 1 00:02:39 2016 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EA172AB9D75 for ; Tue, 1 Mar 2016 00:02:38 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id CDB28EC7 for ; Tue, 1 Mar 2016 00:02:38 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: by mailman.ysv.freebsd.org (Postfix) id CB249AB9D73; Tue, 1 Mar 2016 00:02:38 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B18D9AB9D72; Tue, 1 Mar 2016 00:02:38 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-jnhn.mail.uoguelph.ca (esa-jnhn.mail.uoguelph.ca [131.104.91.44]) by mx1.freebsd.org (Postfix) with ESMTP id 26C41EC6; Tue, 1 Mar 2016 00:02:37 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) IronPort-PHdr: 9a23:xXC7FBV3sOwopxkcFA90GP1FxxXV8LGtZVwlr6E/grcLSJyIuqrYZhCBt8tkgFKBZ4jH8fUM07OQ6PC/HzJRqszY+Fk5M7VyFDY9wf0MmAIhBMPXQWbaF9XNKxIAIcJZSVV+9Gu6O0UGUOz3ZlnVv2HgpWVKQka3CwN5K6zPF5LIiIzvjqbpq8KVPVQD3mP1SIgxBSv1hD2ZjtMRj4pmJ/R54TryiVwMRd5rw3h1L0mYhRf265T41pdi9yNNp6BprJYYAu2pN5g/GJ9VCnwDPnov9YW/thTFZQWV63YWSWlQlQBHVVvr9hb/C63wuSiyk+N22y2XOIWiV7U9Ujem4qJDVRjnlSoDLz5/+2iB2Z84t75SvB/0/083+IXTeozAbPc= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2DQAQAT29RW/61jaINeFoN2bQa6ZwENgWcXCoUoSgKBchQBAQEBAQEBAWMngi2CFAEBAQMBAQEBICsgCwULAgEIGAICDRkCAicBCSYCBAgHBAEcAgKHdggOsQKPBgEBAQEBAQEDAQEBAQEBAQEYe4UXgXSCRoQFEAIBBRaCSjgTgScFh1SGSz2IMIVZhSGERkuDeYhSjkgCHgEBQoIDGYFmHi4BAQEEh0d+AQEB X-IronPort-AV: E=Sophos;i="5.22,521,1449550800"; d="scan'208";a="268423735" Received: from nipigon.cs.uoguelph.ca (HELO zcs1.mail.uoguelph.ca) ([131.104.99.173]) by esa-jnhn.mail.uoguelph.ca with ESMTP; 29 Feb 2016 19:02:30 -0500 Received: from localhost (localhost [127.0.0.1]) by zcs1.mail.uoguelph.ca (Postfix) with ESMTP id 86C5F15F574; Mon, 29 Feb 2016 19:02:30 -0500 (EST) Received: from zcs1.mail.uoguelph.ca ([127.0.0.1]) by localhost (zcs1.mail.uoguelph.ca [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id uY9p308SZ875; Mon, 29 Feb 2016 19:02:29 -0500 (EST) Received: from localhost (localhost [127.0.0.1]) by zcs1.mail.uoguelph.ca (Postfix) with ESMTP id E981C15F578; Mon, 29 Feb 2016 19:02:28 -0500 (EST) X-Virus-Scanned: amavisd-new at zcs1.mail.uoguelph.ca Received: from zcs1.mail.uoguelph.ca ([127.0.0.1]) by localhost (zcs1.mail.uoguelph.ca [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 7Nv56U13dYVU; Mon, 29 Feb 2016 19:02:28 -0500 (EST) Received: from zcs1.mail.uoguelph.ca (zcs1.mail.uoguelph.ca [172.17.95.18]) by zcs1.mail.uoguelph.ca (Postfix) with ESMTP id C3E3E15F574; Mon, 29 Feb 2016 19:02:28 -0500 (EST) Date: Mon, 29 Feb 2016 19:02:28 -0500 (EST) From: Rick Macklem To: Ken Merry Cc: fs@freebsd.org, scsi@freebsd.org Message-ID: <1740288370.14765302.1456790548437.JavaMail.zimbra@uoguelph.ca> In-Reply-To: References: Subject: Re: FUSE extended attribute patches available MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [172.17.95.11] X-Mailer: Zimbra 8.0.9_GA_6191 (ZimbraWebClient - FF44 (Win)/8.0.9_GA_6191) Thread-Topic: FUSE extended attribute patches available Thread-Index: L3zcHd+nBH3JTTOVXhgbDnAZGiFZUA== X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 00:02:39 -0000 Ken Merry wrote: > I have patches for FreeBSD=E2=80=99s FUSE filesystem kernel module to sup= port > extended attributes: >=20 > https://people.freebsd.org/~ken/fuse_extattr.20160229.1.txt >=20 > The patch implements the get/set/delete/list extended attribute methods. = The > listing code also converts extended attribute lists from the Linux/FUSE > format to the FreeBSD format. I also have patches, although my list didn't work. (I didn't know that ther= e was a difference between what Linux/FUSE returns vs what FreeBSD wanted. So now= I know why my "list" didn't work.) Btw, when I discussed what to do w.r.t. extended attribute namespace, he se= emed to think just considering all the fuse ones as User was ok. I also have patched FreeBSD's Fuse for the other stuff needed to export the= fuse mount via an NFS server. (VFS_FHTOVP() etc) These aren't quite ready for "p= rime time" but if anyone wants to try them, just email me and I'll send you a copy. Btw, I have a couple of patches related to direct I/O and buffered I/O. You= can find 2 of these at PR#206238. I also patched fuse_vnop_inactive() to flush/= write dirty pages. (I think this is needed when an application mmaps a file and t= he modifies it after closing the file descriptor. I haven't actually tested to= see if this fix is needed, so I haven't put it anywhere yet.) > For example: >=20 > # touch foo > # ls -la foo > -rwxrwxrwx 1 root wheel 0 Feb 29 21:40 foo > # lsextattr user foo > foo > # setextattr user testattr1 "12345678" foo > # lsextattr user foo > foo testattr1 > # getextattr user testattr1 foo > foo 12345678 > # setextattr user testattr2 "87654321" foo > # lsextattr user foo > foo testattr2 testattr1 > # rmextattr user testattr1 foo > # lsextattr user foo > foo testattr2 > # getextattr user testattr1 foo > getextattr: foo: failed: Attribute not found > # getextattr user testattr2 foo > foo 87654321 >=20 >=20 > Just to be clear on what this does, it only provides extended attribute > support to FreeBSD applications if the underlying FUSE filesystem impleme= nts > FUSE extended attribute support. Many FUSE filesystems don=E2=80=99t sup= port the > extended attribute VFS operations. >=20 > I have tested this out on IBM=E2=80=99s LTFS implementation, but I have n= ot yet found > another FUSE filesystem that supports extended attributes. If anyone kno= ws > of one, please let me know so I can try it out. (I looked through a numb= er > of the filesystems in sysutils/fusefs* in the ports tree.) >=20 The FreeBSD GlusterFS port includes a fuse interface that supports extended attributes. That is how I tested what I have. (I think the port is now in svn, but if not you can find the GlusterFS port at PR#194409.) It glusterfs.org doc doesn't mention that you can create/test a volume of only one brick, but that works for trivial testing. If you decide to use it for testing and have trouble getting it going, just email. I know diddly ab= out GlusterFS, but I have fired it up a few times. > Any feedback is welcome. I=E2=80=99m planning to check this into FreeBSD= /head in the > next week or so. >=20 I'll try to get around and taking a look to see if there is anything differ= ent than what I did (other than the above "list" case I didn't get right;-). rick > Obviously, I=E2=80=99ve also ported IBM=E2=80=99s LTFS implementation to = FreeBSD. It works > in the standard FUSE mode, and you can also link it into an application a= s a > library if you don=E2=80=99t want to incur the overhead of running throug= h FUSE. I > haven=E2=80=99t gotten around to packaging it up to go out for testing / = review. >=20 > If anyone has IBM LTO-5 or newer tape drives, or IBM TS1140 or newer tape > drives, and wants to try it out, let me know. I=E2=80=99ll send you the = code when > I=E2=80=99ve got it at least somewhat ready. This is IBM-specific, and w= on=E2=80=99t work > on HP tape drives. >=20 > Ken > =E2=80=94 > Ken Merry > ken@FreeBSD.ORG >=20 >=20 >=20 > _______________________________________________ > freebsd-fs@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-fs > To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org"