summaryrefslogtreecommitdiff
path: root/open_issues/settrans_directory_symlink.mdwn
diff options
context:
space:
mode:
authorhttps://me.yahoo.com/a/g3Ccalpj0NhN566pHbUl6i9QF0QEkrhlfPM-#b1c14 <diana@web>2015-02-16 20:08:03 +0100
committerGNU Hurd web pages engine <web-hurd@gnu.org>2015-02-16 20:08:03 +0100
commit95878586ec7611791f4001a4ee17abf943fae3c1 (patch)
tree847cf658ab3c3208a296202194b16a6550b243cf /open_issues/settrans_directory_symlink.mdwn
parent8063426bf7848411b0ef3626d57be8cb4826715e (diff)
rename open_issues.mdwn to service_solahart_jakarta_selatan__082122541663.mdwn
Diffstat (limited to 'open_issues/settrans_directory_symlink.mdwn')
-rw-r--r--open_issues/settrans_directory_symlink.mdwn52
1 files changed, 0 insertions, 52 deletions
diff --git a/open_issues/settrans_directory_symlink.mdwn b/open_issues/settrans_directory_symlink.mdwn
deleted file mode 100644
index 86148a52..00000000
--- a/open_issues/settrans_directory_symlink.mdwn
+++ /dev/null
@@ -1,52 +0,0 @@
-[[!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;
- }
- [...]