[dm-devel] format_dev_t() cleanup

Lars Marowsky-Bree lmb at suse.de
Fri Jan 21 14:38:29 UTC 2005


As discussed on IRC, a first step towards somewhat better logging...


Just call format_dev_t() once and store the result on dm_dev to ease
logging the device.

Signed-off-by: Lars Marowsky-Bree <lmb at suse.de>

Index: linux-2.6.5/drivers/md/dm-mpath.c
===================================================================
--- linux-2.6.5.orig/drivers/md/dm-mpath.c	2005-01-19 14:41:17.000000000 +0100
+++ linux-2.6.5/drivers/md/dm-mpath.c	2005-01-21 15:33:23.801629900 +0100
@@ -780,7 +783,9 @@ static int fail_path(struct pgpath *pgpa
 		goto out;
 
 	m = pgpath->pg->m;
-
+	
+	DMWARN("dm-multipath: Failing path %s.", pgpath->path.dev->name);
+	
 	pgpath->pg->ps.type->fail_path(&pgpath->pg->ps, &pgpath->path);
 	pgpath->path.is_active = 0;
 	pgpath->fail_count++;
@@ -936,14 +941,20 @@ void dm_pg_init_complete(struct path *pa
 	unsigned long flags;
 
 	/* We insist on failing the path if the PG is already bypassed. */
-	if (err_flags && pg->bypassed)
+	if (err_flags && pg->bypassed) {
+		DMWARN("dm-multipath: PG init failed for bypassed PG.");
 		err_flags |= MP_FAIL_PATH;
-
-	if (err_flags & MP_FAIL_PATH)
+	}
+	
+	if (err_flags & MP_FAIL_PATH) {
+		DMWARN("dm-multipath: failed PG init causes path to be failed.");
 		fail_path(pgpath);
-
-	if (err_flags & MP_BYPASS_PG)
+	}
+	
+	if (err_flags & MP_BYPASS_PG) {
+		DMINFO("dm-multipath: PG init result causes PG to be bypassed.");
 		bypass_pg(m, pg, 1);
+	}
 
 	spin_lock_irqsave(&m->lock, flags);
 	if (!err_flags)
@@ -1078,7 +1089,6 @@ static int multipath_status(struct dm_ta
 	struct priority_group *pg;
 	struct pgpath *p;
 	unsigned pg_num;
-	char buffer[32];
 	char state;
 
 	/* Features */
@@ -1131,9 +1141,8 @@ static int multipath_status(struct dm_ta
 			DMEMIT("%u %u ", pg->nr_paths, pg->ps.type->info_args);
 
 			list_for_each_entry(p, &pg->pgpaths, list) {
-				format_dev_t(buffer, p->path.dev->bdev->bd_dev);
 				spin_lock_irqsave(&p->queued_lock, flags);
-				DMEMIT("%s %s %u ", buffer,
+				DMEMIT("%s %s %u ", p->path.dev->name,
 				       p->path.is_active ? "A" : "F",
 				       p->fail_count);
 				if (pg->ps.type->status)
@@ -1159,8 +1168,7 @@ static int multipath_status(struct dm_ta
 			DMEMIT("%u %u ", pg->nr_paths, pg->ps.type->table_args);
 
 			list_for_each_entry(p, &pg->pgpaths, list) {
-				format_dev_t(buffer, p->path.dev->bdev->bd_dev);
-				DMEMIT("%s ", buffer);
+				DMEMIT("%s ", p->path.dev->name);
 				if (pg->ps.type->status)
 					sz += pg->ps.type->status(&pg->ps,
 					      &p->path, type, result + sz,
Index: linux-2.6.5/drivers/md/dm-flakey.c
===================================================================
--- linux-2.6.5.orig/drivers/md/dm-flakey.c	2005-01-19 14:41:17.000000000 +0100
+++ linux-2.6.5/drivers/md/dm-flakey.c	2005-01-21 15:22:57.853370404 +0100
@@ -107,7 +107,6 @@ static int flakey_status(struct dm_targe
 			 char *result, unsigned int maxlen)
 {
 	struct flakey *f = (struct flakey *) ti->private;
-	char buffer[32];
 
 	switch (type) {
 	case STATUSTYPE_INFO:
@@ -115,8 +114,7 @@ static int flakey_status(struct dm_targe
 		break;
 
 	case STATUSTYPE_TABLE:
-		format_dev_t(buffer, f->dev->bdev->bd_dev);
-		snprintf(result, maxlen, "%s " SECTOR_FORMAT, buffer, f->start);
+		snprintf(result, maxlen, "%s " SECTOR_FORMAT, f->dev->name, f->start);
 		break;
 	}
 	return 0;
Index: linux-2.6.5/drivers/md/dm-table.c
===================================================================
--- linux-2.6.5.orig/drivers/md/dm-table.c	2005-01-19 14:41:17.000000000 +0100
+++ linux-2.6.5/drivers/md/dm-table.c	2005-01-21 15:32:43.015672004 +0100
@@ -455,6 +455,8 @@ static int __table_get_device(struct dm_
 			return r;
 		}
 
+		format_dev_t(dd->name, dev);
+
 		atomic_set(&dd->count, 0);
 		list_add(&dd->list, &t->devices);
 
Index: linux-2.6.5/drivers/md/dm-bbr.c
===================================================================
--- linux-2.6.5.orig/drivers/md/dm-bbr.c	2005-01-19 14:41:01.000000000 +0100
+++ linux-2.6.5/drivers/md/dm-bbr.c	2005-01-21 15:22:05.745091987 +0100
@@ -334,9 +334,8 @@ static u32 bbr_table_to_remap_list(struc
 		}
 	}
 	if (in_use_blks) {
-		char b[32];
 		DMWARN("dm-bbr: There are %u BBR entries for device %s",
-		       in_use_blks, format_dev_t(b, bbr_id->dev->bdev->bd_dev));
+		       in_use_blks, bbr_id->dev->name);
 	}
 
 	return in_use_blks;
@@ -480,7 +479,6 @@ static int bbr_io_remap_error(struct bbr
 	unsigned long index;
 	unsigned long error;
 	u64 lsn, new_lsn;
-	char b[32];
 	int rc;
 
 	job.bdev = bbr_id->dev->bdev;
@@ -503,7 +501,7 @@ static int bbr_io_remap_error(struct bbr
 
 			/* Write the data to its new location. */
 			DMWARN("dm-bbr: device %s: Trying to remap bad sector "PFU64" to sector "PFU64,
-			       format_dev_t(b, bbr_id->dev->bdev->bd_dev),
+			       bbr_id->dev->name,
 			       starting_lsn + lsn, new_lsn);
 			job.sector = new_lsn;
 			rc = dm_io_sync(1, &job, rw, &pl, offset, &error);
@@ -512,7 +510,7 @@ static int bbr_io_remap_error(struct bbr
 				 * Try the next one.
 				 */
 				DMERR("dm-bbr: device %s: replacement sector "PFU64" is bad. Skipping.",
-				      format_dev_t(b, bbr_id->dev->bdev->bd_dev), new_lsn);
+				      bbr_id->dev->name, new_lsn);
 				atomic_inc(&bbr_id->in_use_replacement_blks);
 				continue;
 			}
@@ -549,7 +547,7 @@ static int bbr_io_remap_error(struct bbr
 			if (rc) {
 				/* Error writing one of the tables to disk. */
 				DMERR("dm-bbr: device %s: error updating BBR tables on disk.",
-				      format_dev_t(b, bbr_id->dev->bdev->bd_dev));
+				      bbr_id->dev->name);
 				return rc;
 			}
 
@@ -558,7 +556,7 @@ static int bbr_io_remap_error(struct bbr
 						    &bbr_table->entries[index]);
 			if (rc) {
 				DMERR("dm-bbr: device %s: error adding new entry to remap tree.",
-				      format_dev_t(b, bbr_id->dev->bdev->bd_dev));
+				      bbr_id->dev->name);
 				return rc;
 			}
 
@@ -760,14 +758,13 @@ static int bbr_endio(struct dm_target *t
 
 	if (error && bbr_io) {
 		unsigned long flags;
-		char b[32];
 
 		dm_bio_restore(bbr_io, bio);
 		map_context->ptr = NULL;
 
 		DMERR("dm-bbr: device %s: I/O failure on sector %lu. "
 		      "Scheduling for retry.",
-		      format_dev_t(b, bbr_id->dev->bdev->bd_dev),
+		      bbr_id->dev->name,
 		      (unsigned long)bio->bi_sector);
 
 		spin_lock_irqsave(&bbr_id->remap_ios_lock, flags);
@@ -893,7 +890,6 @@ static int bbr_status(struct dm_target *
 		      char *result, unsigned int maxlen)
 {
 	struct bbr_private *bbr_id = ti->private;
-	char b[BDEVNAME_SIZE];
 
 	switch (type) {
 	case STATUSTYPE_INFO:
@@ -902,7 +898,7 @@ static int bbr_status(struct dm_target *
 
 	case STATUSTYPE_TABLE:
 		snprintf(result, maxlen, "%s "PFU64" "PFU64" "PFU64" "PFU64" "PFU64" "PFU64" %u",
-			 format_dev_t(b, bbr_id->dev->bdev->bd_dev),
+			 bbr_id->dev->name,
 			 bbr_id->offset, bbr_id->lba_table1, bbr_id->lba_table2,
 			 bbr_id->nr_sects_bbr_table,
 			 bbr_id->start_replacement_sect,
Index: linux-2.6.5/drivers/md/dm-crypt.c
===================================================================
--- linux-2.6.5.orig/drivers/md/dm-crypt.c	2005-01-19 14:41:00.000000000 +0100
+++ linux-2.6.5/drivers/md/dm-crypt.c	2005-01-21 15:22:39.760051508 +0100
@@ -690,7 +690,6 @@ static int crypt_status(struct dm_target
 			char *result, unsigned int maxlen)
 {
 	struct crypt_config *cc = (struct crypt_config *) ti->private;
-	char buffer[32];
 	const char *cipher;
 	const char *mode = NULL;
 	int offset;
@@ -729,10 +728,9 @@ static int crypt_status(struct dm_target
 			result[offset++] = '-';
 		}
 
-		format_dev_t(buffer, cc->dev->bdev->bd_dev);
 		snprintf(result + offset, maxlen - offset, " " SECTOR_FORMAT
 		         " %s " SECTOR_FORMAT, cc->iv_offset,
-		         buffer, cc->start);
+		         cc->dev->name, cc->start);
 		break;
 	}
 	return 0;
Index: linux-2.6.5/drivers/md/dm-snap.c
===================================================================
--- linux-2.6.5.orig/drivers/md/dm-snap.c	2005-01-19 14:41:17.000000000 +0100
+++ linux-2.6.5/drivers/md/dm-snap.c	2005-01-21 15:27:36.544076418 +0100
@@ -864,8 +864,6 @@ static int snapshot_status(struct dm_tar
 			   char *result, unsigned int maxlen)
 {
 	struct dm_snapshot *snap = (struct dm_snapshot *) ti->private;
-	char cow[32];
-	char org[32];
 
 	switch (type) {
 	case STATUSTYPE_INFO:
@@ -892,9 +890,8 @@ static int snapshot_status(struct dm_tar
 		 * to make private copies if the output is to
 		 * make sense.
 		 */
-		format_dev_t(cow, snap->cow->bdev->bd_dev);
-		format_dev_t(org, snap->origin->bdev->bd_dev);
-		snprintf(result, maxlen, "%s %s %c " SECTOR_FORMAT, org, cow,
+		snprintf(result, maxlen, "%s %s %c " SECTOR_FORMAT, 
+				snap->origin->name, snap->cow->name,
 			 snap->type, snap->chunk_size);
 		break;
 	}
@@ -1082,7 +1079,6 @@ static int origin_status(struct dm_targe
 			 unsigned int maxlen)
 {
 	struct dm_dev *dev = (struct dm_dev *) ti->private;
-	char buffer[32];
 
 	switch (type) {
 	case STATUSTYPE_INFO:
@@ -1090,8 +1086,7 @@ static int origin_status(struct dm_targe
 		break;
 
 	case STATUSTYPE_TABLE:
-		format_dev_t(buffer, dev->bdev->bd_dev);
-		snprintf(result, maxlen, "%s", buffer);
+		snprintf(result, maxlen, "%s", dev->name);
 		break;
 	}
 
Index: linux-2.6.5/drivers/md/dm-linear.c
===================================================================
--- linux-2.6.5.orig/drivers/md/dm-linear.c	2004-04-04 05:37:23.000000000 +0200
+++ linux-2.6.5/drivers/md/dm-linear.c	2005-01-21 15:23:19.779121435 +0100
@@ -80,7 +80,6 @@ static int linear_status(struct dm_targe
 			 char *result, unsigned int maxlen)
 {
 	struct linear_c *lc = (struct linear_c *) ti->private;
-	char buffer[32];
 
 	switch (type) {
 	case STATUSTYPE_INFO:
@@ -88,8 +87,7 @@ static int linear_status(struct dm_targe
 		break;
 
 	case STATUSTYPE_TABLE:
-		format_dev_t(buffer, lc->dev->bdev->bd_dev);
-		snprintf(result, maxlen, "%s " SECTOR_FORMAT, buffer, lc->start);
+		snprintf(result, maxlen, "%s " SECTOR_FORMAT, lc->dev->name, lc->start);
 		break;
 	}
 	return 0;
Index: linux-2.6.5/drivers/md/dm.h
===================================================================
--- linux-2.6.5.orig/drivers/md/dm.h	2005-01-19 14:41:17.000000000 +0100
+++ linux-2.6.5/drivers/md/dm.h	2005-01-21 15:29:51.041149663 +0100
@@ -44,6 +44,7 @@ struct dm_dev {
 	atomic_t count;
 	int mode;
 	struct block_device *bdev;
+	char name[BDEVNAME_SIZE];
 };
 
 struct dm_table;
Index: linux-2.6.5/drivers/md/dm-raid1.c
===================================================================
--- linux-2.6.5.orig/drivers/md/dm-raid1.c	2005-01-19 14:41:17.000000000 +0100
+++ linux-2.6.5/drivers/md/dm-raid1.c	2005-01-21 15:26:04.544707487 +0100
@@ -1182,7 +1182,6 @@ static void mirror_resume(struct dm_targ
 static int mirror_status(struct dm_target *ti, status_type_t type,
 			 char *result, unsigned int maxlen)
 {
-	char buffer[32];
 	unsigned int m, sz;
 	struct mirror_set *ms = (struct mirror_set *) ti->private;
 
@@ -1192,8 +1191,7 @@ static int mirror_status(struct dm_targe
 	case STATUSTYPE_INFO:
 		DMEMIT("%d ", ms->nr_mirrors);
 		for (m = 0; m < ms->nr_mirrors; m++) {
-			format_dev_t(buffer, ms->mirror[m].dev->bdev->bd_dev);
-			DMEMIT("%s ", buffer);
+			DMEMIT("%s ", ms->mirror[m].dev->name);
 		}
 
 		DMEMIT(SECTOR_FORMAT "/" SECTOR_FORMAT,
@@ -1204,9 +1202,8 @@ static int mirror_status(struct dm_targe
 	case STATUSTYPE_TABLE:
 		DMEMIT("%d ", ms->nr_mirrors);
 		for (m = 0; m < ms->nr_mirrors; m++) {
-			format_dev_t(buffer, ms->mirror[m].dev->bdev->bd_dev);
 			DMEMIT("%s " SECTOR_FORMAT " ",
-			       buffer, ms->mirror[m].offset);
+			       ms->mirror[m].dev->name, ms->mirror[m].offset);
 		}
 	}
 
Index: linux-2.6.5/drivers/md/dm-stripe.c
===================================================================
--- linux-2.6.5.orig/drivers/md/dm-stripe.c	2005-01-19 14:41:17.000000000 +0100
+++ linux-2.6.5/drivers/md/dm-stripe.c	2005-01-21 15:28:05.342809573 +0100
@@ -189,7 +189,6 @@ static int stripe_status(struct dm_targe
 	struct stripe_c *sc = (struct stripe_c *) ti->private;
 	unsigned int sz = 0;
 	unsigned int i;
-	char buffer[32];
 
 	switch (type) {
 	case STATUSTYPE_INFO:
@@ -199,8 +198,7 @@ static int stripe_status(struct dm_targe
 	case STATUSTYPE_TABLE:
 		DMEMIT("%d " SECTOR_FORMAT, sc->stripes, sc->chunk_mask + 1);
 		for (i = 0; i < sc->stripes; i++) {
-			format_dev_t(buffer, sc->stripe[i].dev->bdev->bd_dev);
-			DMEMIT(" %s " SECTOR_FORMAT, buffer,
+			DMEMIT(" %s " SECTOR_FORMAT, sc->stripe[i].dev->name,
 			       sc->stripe[i].physical_start);
 		}
 		break;




More information about the dm-devel mailing list