aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community/meetings.mdwn5
-rw-r--r--community/meetings/fosdem_2012.mdwn8
-rw-r--r--community/meetings/ghm2012.mdwn13
-rw-r--r--hurd/translator/short-circuiting.mdwn8
-rw-r--r--open_issues/settrans_directory_symlink.mdwn52
5 files changed, 77 insertions, 9 deletions
diff --git a/community/meetings.mdwn b/community/meetings.mdwn
index 4ae52a1a..19c5a533 100644
--- a/community/meetings.mdwn
+++ b/community/meetings.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011 Free Software
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012 Free Software
Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -16,12 +16,13 @@ License|/fdl]]."]]"""]]
## In the Future
- * [[FOSDEM_2012]]
+ * [[GNU Hackers Meeting, 2012, Düsseldorf|ghm2012]]
* [[Self-organised]]
# Past
+ * [[FOSDEM_2012]]
* [[FrOSCon_2011]]
* [[GNU Hackers Meeting, 2011, Paris|ghm2011]]
* [[FOSDEM_2011]]
diff --git a/community/meetings/fosdem_2012.mdwn b/community/meetings/fosdem_2012.mdwn
index b6f31efc..8143e236 100644
--- a/community/meetings/fosdem_2012.mdwn
+++ b/community/meetings/fosdem_2012.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free
+Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -22,10 +22,10 @@ Bruxelles.
[[!table class="table_style_1" data="""
"Name","Attending","Arrival","Return","Share room with us"
"[[Maksym Planeta]]","no"
-"Olaf Buddenhagen","most likely","","","yes"
+"Olaf Buddenhagen","yes","","","yes"
"Richard Braun","no"
"Svante Signell","no"
-"[[Thomas Schwinge|tschwinge]]","will try to","","","yes"
+"[[Thomas Schwinge|tschwinge]]","no"
"""]]
diff --git a/community/meetings/ghm2012.mdwn b/community/meetings/ghm2012.mdwn
new file mode 100644
index 00000000..0e3c8cd5
--- /dev/null
+++ b/community/meetings/ghm2012.mdwn
@@ -0,0 +1,13 @@
+[[!meta copyright="Copyright © 2012 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="GNU Hackers Meeting, 2012, Düsseldorf"]]
+
+<http://www.gnu.org/ghm/2012/ddorf/>
diff --git a/hurd/translator/short-circuiting.mdwn b/hurd/translator/short-circuiting.mdwn
index 9de9f7b8..6f608fb2 100644
--- a/hurd/translator/short-circuiting.mdwn
+++ b/hurd/translator/short-circuiting.mdwn
@@ -1,12 +1,12 @@
-[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2009, 2012 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
-is included in the section entitled
-[[GNU Free Documentation License|/fdl]]."]]"""]]
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
In traditional [[Unix]], file systems contain special files. These are:
symbolic links, character devices, block devices, named pipes, and
@@ -60,6 +60,8 @@ To make sure that you use one of these translators, there by bypassing the
short-circuiting mechanism, you can either start it as
an active translator, or use a different path from the one in
`hurd/path.h`, e.g. `settrans bar /hurd/./symlink foo`.
+There is also a `FS_TRANS_FORCE` flag defined for the `file_set_translator`
+RPCs, but it currently isn't set from anywhere.
The best example of how short-circuiting is implemented can be found
in [[`libdiskfs`|libdiskfs]]. Notice how it detects if a translator to store
diff --git a/open_issues/settrans_directory_symlink.mdwn b/open_issues/settrans_directory_symlink.mdwn
new file mode 100644
index 00000000..86148a52
--- /dev/null
+++ b/open_issues/settrans_directory_symlink.mdwn
@@ -0,0 +1,52 @@
+[[!meta copyright="Copyright © 2012 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_hurd]]
+
+This works:
+
+ $ touch a && settrans a /hurd/symlink b
+
+This doesn't:
+
+ $ mkdir a && settrans a /hurd/symlink b
+ settrans: a: Is a directory
+
+It's the same `file_set_translator` RPC both times, and it's [[translator
+short-circuiting|hurd/translator/short-circuiting]] which makes the latter one
+fail:
+
+`libdiskfs/file-set-trans.c`:
+
+ [...]
+ /* Set passive translator */
+ if (passive_flags & FS_TRANS_SET)
+ {
+ if (!(passive_flags & FS_TRANS_FORCE))
+ {
+ /* Handle the short-circuited translators */
+ mode_t newmode = 0;
+
+ if (diskfs_shortcut_symlink && !strcmp (passive, _HURD_SYMLINK))
+ newmode = S_IFLNK;
+ [...]
+
+ if (newmode)
+ {
+ if (S_ISDIR (np->dn_stat.st_mode))
+ {
+ /* We can't allow this, because if the mode of the directory
+ changes, the links will be lost. Perhaps it might be
+ allowed for empty directories, but that's too much of a
+ pain. */
+ mutex_unlock (&np->lock);
+ return EISDIR;
+ }
+ [...]