Hallo, Bernd Brodesser wrote:
* Joerg Zimmermann schrieb am 01.Okt.2000:
ist .. wirklich *immer* ein Hardlink auf das uebergeordnete Verzeichniss, oder 'nur' wenn es auf dem selben device liegt?
Kann man sich ja mal mit ls -i ansehen. Die Option -i gibt die I-Node-Nummer mit aus. Man sieht, daß bei dem obersten Verzeichnis einer Partition, sowohl . als auch .. die I-Node-Nummer 2 haben. Es ist somit .. ein Hardlink auf .
Das bei cd .. auf eine andere Partition gewechselt wird, müsste am Systemaufruf chdir liegen, allerdings habe ich bei man 2 chdir keinen Hinweiß gefunden.
Ich sach nur Open Source :) @/usr/src/linux/fs/open.c:329 asmlinkage long sys_chdir(const char * filename) { @/usr/src/linux/fs/open.c:341 if (path_init(name,LOOKUP_POSITIVE|LOOKUP_FOLLOW|LOOKUP_DIRECTORY,&nd)) error = path_walk(name, &nd); @/usr/src/linux/fs/namei.c:407 /* * Name resolution. * * This is the basic name resolution function, turning a pathname * into the final dentry. * * We expect 'base' to be positive and a directory. */ int path_walk(const char * name, struct nameidata *nd) { @/usr/src/linux/fs/namei.c:461 /* * "." and ".." are special - ".." especially so because it has * to be able to know about the current root directory and * parent relationships. */ if (this.name[0] == '.') switch (this.len) { default: break; case 2: if (this.name[1] != '.') break; follow_dotdot(nd); @/usr/src/linux/fs/namei.c:373 static inline void follow_dotdot(struct nameidata *nd) { [..] Hier wird's dann zu kompliziert um's zu pasten... und ist mir um diese Uhrzeit zu hoch ;) Wer's verfolgen will, sollte ausser namei.c auch gleich noch: /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/mount.h /usr/src/linux/include/linux/dcache.h z.B. in den (X)Emacs laden... Das uebergeordnete Verz. wird (soweit ich es verstehe) in den diversen 'struct dentry's und 'struct vfsmount's der betroffenen Verzeichnisse verwaltet, ist also IMVHO unabhaengig von den '..' Hardlinks. CU David -- The two most common things in the universe are hydrogen and stupidity. --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com