| From | Sent On | Attachments |
|---|---|---|
| Juergen Unger | Jul 27, 2009 12:24 am | |
| O. Hartmann | Jul 27, 2009 12:58 pm | |
| Juergen Unger | Jul 27, 2009 2:33 pm | |
| Andriy Gapon | Jul 28, 2009 2:50 am | |
| Pawel Jakub Dawidek | Jul 29, 2009 1:47 am | |
| Thomas Backman | Jul 29, 2009 3:31 am | |
| Andriy Gapon | Jul 29, 2009 4:21 am | |
| Andriy Gapon | Jul 29, 2009 4:41 am | |
| Thomas Backman | Jul 29, 2009 5:45 am | |
| Andriy Gapon | Jul 29, 2009 6:03 am | |
| Thomas Backman | Jul 29, 2009 6:23 am | |
| Andriy Gapon | Jul 29, 2009 6:45 am | |
| Thomas Backman | Jul 29, 2009 6:52 am | |
| Andriy Gapon | Jul 29, 2009 6:55 am | |
| Thomas Backman | Jul 29, 2009 7:10 am | |
| Andriy Gapon | Jul 29, 2009 7:35 am | |
| Andriy Gapon | Jul 29, 2009 9:01 am | |
| Thomas Backman | Jul 29, 2009 9:10 am | |
| Thomas Backman | Jul 29, 2009 10:13 am | |
| Andriy Gapon | Jul 29, 2009 10:17 am | |
| Thomas Backman | Jul 29, 2009 11:03 am | |
| Thomas Backman | Jul 29, 2009 1:14 pm | |
| Pawel Jakub Dawidek | Jul 29, 2009 2:17 pm | |
| Thomas Backman | Jul 30, 2009 12:04 am | |
| Andriy Gapon | Jul 30, 2009 5:11 am | |
| Thomas Backman | Jul 30, 2009 5:51 am | |
| Andriy Gapon | Jul 30, 2009 6:13 am | |
| Thomas Backman | Jul 30, 2009 6:31 am | |
| Andriy Gapon | Jul 30, 2009 6:34 am | |
| Andriy Gapon | Jul 30, 2009 7:24 am | |
| Thomas Backman | Jul 30, 2009 7:39 am | |
| Andriy Gapon | Jul 30, 2009 7:45 am | |
| Andriy Gapon | Jul 30, 2009 7:48 am | |
| Thomas Backman | Jul 30, 2009 8:25 am | |
| Andriy Gapon | Jul 30, 2009 8:39 am | |
| Thomas Backman | Jul 30, 2009 9:41 am | |
| Thomas Backman | Jul 30, 2009 11:29 am | |
| Andriy Gapon | Jul 30, 2009 11:41 am | |
| Thomas Backman | Jul 31, 2009 2:04 am | |
| James R. Van Artsdalen | Jul 31, 2009 4:44 am | |
| Thomas Backman | Jul 31, 2009 5:26 am | |
| Thomas Backman | Jul 31, 2009 10:09 am | |
| Tim Kientzle | Aug 1, 2009 10:11 am | |
| Juergen Unger | Aug 2, 2009 2:26 am | |
| Pawel Jakub Dawidek | Aug 2, 2009 2:29 am | |
| Juergen Unger | Aug 3, 2009 1:32 pm | |
| Pawel Jakub Dawidek | Aug 4, 2009 12:33 am | |
| Juergen Unger | Aug 4, 2009 12:53 am | |
| Pawel Jakub Dawidek | Aug 4, 2009 2:49 am | |
| Juergen Unger | Aug 4, 2009 2:56 am | |
| Pawel Jakub Dawidek | Aug 4, 2009 12:50 pm | |
| Thomas Backman | Aug 4, 2009 1:10 pm | |
| Pawel Jakub Dawidek | Aug 4, 2009 1:25 pm | |
| Pawel Jakub Dawidek | Aug 4, 2009 11:49 pm | |
| Thomas Backman | Aug 5, 2009 12:08 am | |
| Thomas Backman | Aug 5, 2009 12:20 am | |
| Pawel Jakub Dawidek | Aug 5, 2009 2:37 am | |
| Thomas Backman | Aug 5, 2009 3:36 am | |
| Thomas Backman | Aug 5, 2009 5:06 am | |
| Pawel Jakub Dawidek | Aug 6, 2009 10:44 pm |
| Subject: | Re: zfs: Fatal trap 12: page fault while in kernel mode | |
|---|---|---|
| From: | James R. Van Artsdalen (jame...@jrv.org) | |
| Date: | Jul 31, 2009 4:44:47 am | |
| List: | org.freebsd.freebsd-current | |
Andriy Gapon wrote:
on 30/07/2009 17:39 Thomas Backman said the following:
Or, in patch form (I think the intendation screws the patch up as linked there): http://exscape.org/temp/libzfs_sendrecv.patch
One comment on the patch - I personally don't like bit-wise xor in a logical expression. But if otherwise the expression would be huge and ugly, then OK.
If you're going to code an XOR, use an XOR. Don' make the reader untangle code to figure out that that some other code is really just an XOR.
However I think I was trying to handle two cases that can't happen: the top filesystem cannot be renamed to somewhere else in the pool, and no other filesystem can be renamed to the root. So the new version of the patch below needs no XOR.
Without this or something like it you can't replicate an entire pool, i.e.
zfs send -R -I @yesterday pool@today | ssh backup zfs recv -vF -d pool
dumps core from the strccmp(0, 0) in the original code below.
Index: cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c =================================================================== --- cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c (revision 192136) +++ cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c (working copy) @@ -1126,7 +1126,7 @@ uint64_t originguid = 0; uint64_t stream_originguid = 0; uint64_t parent_fromsnap_guid, stream_parent_fromsnap_guid; - char *fsname, *stream_fsname; + char *fsname, *stream_fsname, *p1, *p2;
nextfselem = nvlist_next_nvpair(local_nv, fselem);
@@ -1295,10 +1295,11 @@ "parentfromsnap", &stream_parent_fromsnap_guid));
/* check for rename */ + p1 = strrchr(fsname, '/'); + p2 = strrchr(stream_fsname, '/'); if ((stream_parent_fromsnap_guid != 0 && stream_parent_fromsnap_guid != parent_fromsnap_guid) || - strcmp(strrchr(fsname, '/'), - strrchr(stream_fsname, '/')) != 0) { + (p1 != NULL && p2 != NULL && strcmp (p1, p2) != 0)) { nvlist_t *parent; char tryname[ZFS_MAXNAMELEN];
@@ -1317,7 +1318,7 @@ VERIFY(0 == nvlist_lookup_string(parent, "name", &pname)); (void) snprintf(tryname, sizeof (tryname), - "%s%s", pname, strrchr(stream_fsname, '/')); + "%s%s", pname, p2 ? p2 : ""); } else { tryname[0] = '\0'; if (flags.verbose) {
_______________________________________________ free...@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "free...@freebsd.org"





