[Ocfs2-commits] mfasheh commits r1660 - branches/dlm-glue/src
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Sat Nov 20 17:32:40 CST 2004
Author: mfasheh
Date: 2004-11-20 17:32:38 -0600 (Sat, 20 Nov 2004)
New Revision: 1660
Modified:
branches/dlm-glue/src/super.c
Log:
* clean things up a bit wrt passing group_name around
Modified: branches/dlm-glue/src/super.c
===================================================================
--- branches/dlm-glue/src/super.c 2004-11-20 23:32:00 UTC (rev 1659)
+++ branches/dlm-glue/src/super.c 2004-11-20 23:32:38 UTC (rev 1660)
@@ -139,7 +139,8 @@
static int __init ocfs_driver_entry (void);
static void __exit ocfs_driver_exit (void);
static void ocfs_put_super (struct super_block *sb);
-static int ocfs_mount_volume (struct super_block *sb, int reclaim_id, char *group_name, struct inode *root);
+static int ocfs_mount_volume (struct super_block *sb, int reclaim_id,
+ char **group_name, struct inode *root);
static void ocfs_dismount_volume(struct super_block *sb);
static int ocfs_initialize_mem_lists (void);
static void ocfs_free_mem_lists (void);
@@ -156,7 +157,7 @@
static int ocfs_init_global_system_inodes(ocfs_super *osb);
static int ocfs_init_local_system_inodes(ocfs_super *osb);
static int ocfs_release_system_inodes(ocfs_super *osb);
-static int ocfs2_fill_node_info(ocfs_super *osb, const char *group_name);
+static int ocfs2_fill_node_info(ocfs_super *osb, char **group_name);
static int ocfs2_complete_mount_recovery(ocfs_super *osb);
static int ocfs_check_volume(ocfs_super * osb);
static int ocfs_verify_volume(ocfs2_dinode *di, struct buffer_head *bh,
@@ -339,7 +340,7 @@
/* this is needed to support O_LARGE_FILE */
sb->s_maxbytes = OCFS_LINUX_MAX_FILE_SIZE;
- status = ocfs_mount_volume (sb, reclaim_id, group_name, NULL);
+ status = ocfs_mount_volume (sb, reclaim_id, &group_name, NULL);
if (status < 0)
goto read_super_error;
@@ -489,13 +490,15 @@
}
LOG_TRACE_ARGS("group name passed = %s\n", value);
- size = strlen(value);
+ size = strlen(value) + 1;
*group_name = kmalloc(size, GFP_KERNEL);
if (!(*group_name)) {
LOG_ERROR_STATUS(-ENOMEM);
goto bail;
}
-
+ memset(*group_name, 0, size);
+ printk("ocfs2: group name passed = %s, size = %d\n",
+ value, size);
strcpy(*group_name, value);
} else {
LOG_ERROR_ARGS ("Invalid mount option: %s", c);
@@ -856,24 +859,25 @@
return 0;
}
-static int ocfs2_fill_node_info(ocfs_super *osb, const char *group_name)
+static int ocfs2_fill_node_info(ocfs_super *osb, char **group_name)
{
int status;
struct inode *group = NULL;
- osb->group_name = kmalloc(NM_MAX_NAME_LEN, GFP_KERNEL);
- if (!osb->group_name) {
- status = -ENOMEM;
- LOG_ERROR_STATUS(status);
- goto bail;
+ if (group_name) {
+ osb->group_name = *group_name;
+ *group_name = NULL;
+ } else {
+ osb->group_name = kmalloc(NM_MAX_NAME_LEN, GFP_KERNEL);
+ if (!osb->group_name) {
+ status = -ENOMEM;
+ LOG_ERROR_STATUS(status);
+ goto bail;
+ }
+ memset(osb->group_name, 0, NM_MAX_NAME_LEN);
+ memcpy(osb->group_name, osb->uuid, MAX_VOL_ID_LENGTH);
}
- memset(osb->group_name, 0, NM_MAX_NAME_LEN);
- if (group_name)
- strncpy(osb->group_name, group_name, NM_MAX_NAME_LEN);
- else
- memcpy(osb->group_name, osb->uuid, MAX_VOL_ID_LENGTH);
-
group = nm_get_group_by_name(osb->group_name);
if (!group) {
printk("ocfs2: could not join group \"%s\"\n",
@@ -898,7 +902,8 @@
* ocfs_mount_volume()
*
*/
-static int ocfs_mount_volume (struct super_block *sb, int reclaim_id, char *group_name, struct inode *root)
+static int ocfs_mount_volume (struct super_block *sb, int reclaim_id,
+ char **group_name, struct inode *root)
{
int status, sector_size;
int unlock_super = 0;
More information about the Ocfs2-commits
mailing list