From: David Howells <dhowells@redhat.com>
To: torvalds@osdl.org, akpm@osdl.org
Cc: linux-kernel@vger.kernel.org, viro@parcelfarce.linux.theplanet.co.uk
Subject: [PATCH] kAFS automount support
Date: Wed, 30 Jun 2004 20:41:52 +0100 [thread overview]
Message-ID: <31092.1088624512@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:43 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-30 19:41 David Howells [this message]
-- strict thread matches above, loose matches on Subject: below --
2004-06-30 19:40 [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=31092.1088624512@redhat.com \
--to=dhowells@redhat.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.