From: David Howells <dhowells@redhat.com>
To: torvalds@osdl.com, akpm@osdl.com
Cc: linux-kernel@vger.kernel.org, viro@parcelfarce.linux.theplanet.co.uk
Subject: [PATCH] kAFS automount support
Date: Wed, 30 Jun 2004 20:40:48 +0100 [thread overview]
Message-ID: <31049.1088624448@redhat.com> (raw)
Hi Linus, Andrew,
Here's a patch to allow the kAFS filesystem to use the automount facility
patch presented in a previous email.
It allows me to mount an AFS root volume on /afs and then just walk through
the directory structure causing referenced volumes to be automounted and
autoumounted.
For instance, if I do:
[root@andromeda root]# mount -t afs \#root.afs. /afs
[root@andromeda root]# ls /afs
asd cambridge cambridge.redhat.com grand.central.org
[root@andromeda root]# ls /afs/cambridge
afsdoc
[root@andromeda root]# ls /afs/cambridge/afsdoc/
ChangeLog html LICENSE pdf RELNOTES-1.2.2
And then look in the mountpoint catalogue, I see:
[root@andromeda root]# cat /proc/mounts
...
#root.afs. /afs afs rw 0 0
#root.cell. /afs/cambridge.redhat.com afs rw 0 0
#afsdoc. /afs/cambridge.redhat.com/afsdoc afs rw 0 0
Then after waiting a few minutes:
[root@andromeda root]# cat /proc/mounts
...
#root.afs. /afs afs rw 0 0
Is all that remains.
David
diff -uNr linux-2.6.7/fs/afs/cmservice.c linux-2.6.7-auto/fs/afs/cmservice.c
--- linux-2.6.7/fs/afs/cmservice.c 2004-06-18 13:41:16.000000000 +0100
+++ linux-2.6.7-auto/fs/afs/cmservice.c 2004-06-30 20:04:06.392069575 +0100
@@ -307,10 +307,8 @@
if (ret < 0)
goto kill;
-#ifdef AFS_AUTOMOUNT_SUPPORT
afs_kafstimod_add_timer(&afs_mntpt_expiry_timer,
afs_mntpt_expiry_timeout * HZ);
-#endif
}
afscm_usage++;
@@ -392,9 +390,7 @@
}
spin_unlock(&kafscmd_attention_lock);
-#ifdef AFS_AUTOMOUNT_SUPPORT
afs_kafstimod_del_timer(&afs_mntpt_expiry_timer);
-#endif
}
up_write(&afscm_sem);
diff -uNr linux-2.6.7/fs/afs/internal.h linux-2.6.7-auto/fs/afs/internal.h
--- linux-2.6.7/fs/afs/internal.h 2004-06-18 13:41:17.000000000 +0100
+++ linux-2.6.7-auto/fs/afs/internal.h 2004-06-30 20:04:06.390069741 +0100
@@ -107,11 +107,9 @@
*/
extern struct inode_operations afs_mntpt_inode_operations;
extern struct file_operations afs_mntpt_file_operations;
-#ifdef AFS_AUTOMOUNT_SUPPORT
extern struct afs_timer afs_mntpt_expiry_timer;
extern struct afs_timer_ops afs_mntpt_expiry_timer_ops;
extern unsigned long afs_mntpt_expiry_timeout;
-#endif
extern int afs_mntpt_check_symlink(struct afs_vnode *vnode);
diff -uNr linux-2.6.7/fs/afs/mntpt.c linux-2.6.7-auto/fs/afs/mntpt.c
--- linux-2.6.7/fs/afs/mntpt.c 2004-06-18 13:41:16.000000000 +0100
+++ linux-2.6.7-auto/fs/afs/mntpt.c 2004-06-30 20:04:04.180253426 +0100
@@ -30,10 +30,7 @@
struct dentry *dentry,
struct nameidata *nd);
static int afs_mntpt_open(struct inode *inode, struct file *file);
-
-#ifdef AFS_AUTOMOUNT_SUPPORT
static int afs_mntpt_follow_link(struct dentry *dentry, struct nameidata *nd);
-#endif
struct file_operations afs_mntpt_file_operations = {
.open = afs_mntpt_open,
@@ -41,14 +38,11 @@
struct inode_operations afs_mntpt_inode_operations = {
.lookup = afs_mntpt_lookup,
-#ifdef AFS_AUTOMOUNT_SUPPORT
.follow_link = afs_mntpt_follow_link,
-#endif
.readlink = page_readlink,
.getattr = afs_inode_getattr,
};
-#ifdef AFS_AUTOMOUNT_SUPPORT
static LIST_HEAD(afs_vfsmounts);
static void afs_mntpt_expiry_timed_out(struct afs_timer *timer);
@@ -60,7 +54,6 @@
struct afs_timer afs_mntpt_expiry_timer;
unsigned long afs_mntpt_expiry_timeout = 20;
-#endif
/*****************************************************************************/
/*
@@ -156,7 +149,6 @@
return -EREMOTE;
} /* end afs_mntpt_open() */
-#ifdef AFS_AUTOMOUNT_SUPPORT
/*****************************************************************************/
/*
* create a vfsmount to be automounted
@@ -288,4 +280,3 @@
kleave("");
} /* end afs_mntpt_expiry_timed_out() */
-#endif
diff -uNr linux-2.6.7/fs/afs/super.c linux-2.6.7-auto/fs/afs/super.c
--- linux-2.6.7/fs/afs/super.c 2004-06-18 13:41:16.000000000 +0100
+++ linux-2.6.7-auto/fs/afs/super.c 2004-06-30 20:04:06.394069408 +0100
@@ -78,9 +78,7 @@
_enter("");
-#ifdef AFS_AUTOMOUNT_SUPPORT
afs_timer_init(&afs_mntpt_expiry_timer, &afs_mntpt_expiry_timer_ops);
-#endif
/* create ourselves an inode cache */
atomic_set(&afs_count_active_inodes, 0);
next reply other threads:[~2004-06-30 19:41 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-30 19:40 David Howells [this message]
-- strict thread matches above, loose matches on Subject: below --
2004-06-30 19:41 [PATCH] kAFS automount support David Howells
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=31049.1088624448@redhat.com \
--to=dhowells@redhat.com \
--cc=akpm@osdl.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.com \
--cc=viro@parcelfarce.linux.theplanet.co.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox