diff --git a/fs/afs/internal.h b/fs/afs/internal.h index 79061fa171681c1a63a115ffdeaa92d14aa3320e..8acf3670e75649d0c62de3dd068d56da37d5b97a 100644 --- a/fs/afs/internal.h +++ b/fs/afs/internal.h @@ -560,6 +560,11 @@ extern struct vfsmount *afs_d_automount(struct path *); extern int afs_mntpt_check_symlink(struct afs_vnode *, struct key *); extern void afs_mntpt_kill_timer(void); +/* + * netdevices.c + */ +extern int afs_get_ipv4_interfaces(struct afs_interface *, size_t, bool); + /* * proc.c */ @@ -623,12 +628,6 @@ extern void __exit afs_purge_servers(void); extern int afs_fs_init(void); extern void afs_fs_exit(void); -/* - * use-rtnetlink.c - */ -extern int afs_get_ipv4_interfaces(struct afs_interface *, size_t, bool); -extern int afs_get_MAC_address(u8 *, size_t); - /* * vlclient.c */ diff --git a/fs/afs/main.c b/fs/afs/main.c index a07c14df3fd13a3f1a28e3e2af519dc65579e9db..51d7d17bca5756b9e4dbbb05408689e2d936a477 100644 --- a/fs/afs/main.c +++ b/fs/afs/main.c @@ -34,50 +34,6 @@ MODULE_PARM_DESC(rootcell, "root AFS cell name and VL server IP addr list"); struct uuid_v1 afs_uuid; struct workqueue_struct *afs_wq; -/* - * get a client UUID - */ -static int __init afs_get_client_UUID(void) -{ - struct timespec ts; - u64 uuidtime; - u16 clockseq, hi_v; - int ret; - - /* read the MAC address of one of the external interfaces and construct - * a UUID from it */ - ret = afs_get_MAC_address(afs_uuid.node, sizeof(afs_uuid.node)); - if (ret < 0) - return ret; - - getnstimeofday(&ts); - uuidtime = (u64) ts.tv_sec * 1000 * 1000 * 10; - uuidtime += ts.tv_nsec / 100; - uuidtime += UUID_TO_UNIX_TIME; - afs_uuid.time_low = htonl(uuidtime); - afs_uuid.time_mid = htons(uuidtime >> 32); - hi_v = (uuidtime >> 48) & UUID_TIMEHI_MASK; - hi_v |= UUID_VERSION_TIME; - afs_uuid.time_hi_and_version = htons(hi_v); - - get_random_bytes(&clockseq, 2); - afs_uuid.clock_seq_low = clockseq; - afs_uuid.clock_seq_hi_and_reserved = - (clockseq >> 8) & UUID_CLOCKHI_MASK; - afs_uuid.clock_seq_hi_and_reserved |= UUID_VARIANT_STD; - - _debug("AFS UUID: %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", - ntohl(afs_uuid.time_low), - ntohs(afs_uuid.time_mid), - ntohs(afs_uuid.time_hi_and_version), - afs_uuid.clock_seq_hi_and_reserved, - afs_uuid.clock_seq_low, - afs_uuid.node[0], afs_uuid.node[1], afs_uuid.node[2], - afs_uuid.node[3], afs_uuid.node[4], afs_uuid.node[5]); - - return 0; -} - /* * initialise the AFS client FS module */ @@ -87,9 +43,7 @@ static int __init afs_init(void) printk(KERN_INFO "kAFS: Red Hat AFS client v0.1 registering.\n"); - ret = afs_get_client_UUID(); - if (ret < 0) - return ret; + generate_random_uuid((unsigned char *)&afs_uuid); /* create workqueue */ ret = -ENOMEM; diff --git a/fs/afs/netdevices.c b/fs/afs/netdevices.c index 7ad36506c256a55d54fc96dc6e3c323e82c4c230..40b2bab3e401445492f91e11661617bda1328f37 100644 --- a/fs/afs/netdevices.c +++ b/fs/afs/netdevices.c @@ -11,27 +11,6 @@ #include #include "internal.h" -/* - * get a MAC address from a random ethernet interface that has a real one - * - the buffer will normally be 6 bytes in size - */ -int afs_get_MAC_address(u8 *mac, size_t maclen) -{ - struct net_device *dev; - int ret = -ENODEV; - - BUG_ON(maclen != ETH_ALEN); - - rtnl_lock(); - dev = __dev_getfirstbyhwtype(&init_net, ARPHRD_ETHER); - if (dev) { - memcpy(mac, dev->dev_addr, maclen); - ret = 0; - } - rtnl_unlock(); - return ret; -} - /* * get a list of this system's interface IPv4 addresses, netmasks and MTUs * - maxbufs must be at least 1