All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pete Zaitcev <zaitcev@redhat.com>
To: linux-kernel@vger.kernel.org
Subject: Patch to make free_kiobuf prettier in -ac
Date: Wed, 17 Oct 2001 18:17:54 -0400	[thread overview]
Message-ID: <20011017181754.A6918@devserv.devel.redhat.com> (raw)

Fellow hackers:

YMMV, but free_kiobuf_sz injures my sense of beauty
in C programming. Anyone cares enough to comment?

Greerings,
-- Pete

diff -urN -X dontdiff linux-2.4.10-ac10/drivers/char/raw.c linux-2.4.10-ac10-e/drivers/char/raw.c
--- linux-2.4.10-ac10/drivers/char/raw.c	Wed Oct 10 21:51:41 2001
+++ linux-2.4.10-ac10-e/drivers/char/raw.c	Wed Oct 17 14:49:53 2001
@@ -157,13 +157,12 @@
 {
 	int minor;
 	struct block_device *bdev;
-	int	nbhs = KIO_MAX_SECTORS;
-	
+
 	minor = MINOR(inode->i_rdev);
 	down(&raw_devices[minor].mutex);
 	bdev = raw_devices[minor].binding;
 	if (!--raw_devices[minor].inuse)
-		free_kiovec_sz(1, &raw_devices[minor].iobuf, &nbhs);
+		free_kiovec(1, &raw_devices[minor].iobuf);
 	up(&raw_devices[minor].mutex);
 	blkdev_put(bdev, BDEV_RAW);
 	return 0;
@@ -390,7 +389,7 @@
 	if (!new_iobuf)
 		clear_bit(0, &raw_devices[minor].iobuf_lock);
 	else
-		free_kiovec_sz(1, &iobuf, &nbhs);
+		free_kiovec(1, &iobuf);
  out:	
 	return err;
 }
diff -urN -X dontdiff linux-2.4.10-ac10/drivers/md/lvm-snap.c linux-2.4.10-ac10-e/drivers/md/lvm-snap.c
--- linux-2.4.10-ac10/drivers/md/lvm-snap.c	Wed Oct 10 21:51:44 2001
+++ linux-2.4.10-ac10-e/drivers/md/lvm-snap.c	Wed Oct 17 14:51:42 2001
@@ -528,12 +528,12 @@
 
 out_free_both_kiovecs:
 	unmap_kiobuf(lv_snap->lv_COW_table_iobuf);
-	free_kiovec_sz(1, &lv_snap->lv_COW_table_iobuf, &nbhs);
+	free_kiovec(1, &lv_snap->lv_COW_table_iobuf);
 	lv_snap->lv_COW_table_iobuf = NULL;
 
 out_free_kiovec:
 	unmap_kiobuf(lv_snap->lv_iobuf);
-	free_kiovec_sz(1, &lv_snap->lv_iobuf, &nbhs);
+	free_kiovec(1, &lv_snap->lv_iobuf);
 	lv_snap->lv_iobuf = NULL;
 	if (lv_snap->lv_snapshot_hash_table != NULL)
 		vfree(lv_snap->lv_snapshot_hash_table);
@@ -543,7 +543,6 @@
 
 void lvm_snapshot_release(lv_t * lv)
 {
-	int 	nbhs = KIO_MAX_SECTORS;
 
 	if (lv->lv_block_exception)
 	{
@@ -560,14 +559,14 @@
 	{
 	        kiobuf_wait_for_io(lv->lv_iobuf);
 		unmap_kiobuf(lv->lv_iobuf);
-		free_kiovec_sz(1, &lv->lv_iobuf, &nbhs);
+		free_kiovec(1, &lv->lv_iobuf);
 		lv->lv_iobuf = NULL;
 	}
 	if (lv->lv_COW_table_iobuf)
 	{
                kiobuf_wait_for_io(lv->lv_COW_table_iobuf);
                unmap_kiobuf(lv->lv_COW_table_iobuf);
-               free_kiovec_sz(1, &lv->lv_COW_table_iobuf, &nbhs);
+               free_kiovec(1, &lv->lv_COW_table_iobuf);
                lv->lv_COW_table_iobuf = NULL;
 	}
 }
diff -urN -X dontdiff linux-2.4.10-ac10/drivers/mtd/devices/blkmtd.c linux-2.4.10-ac10-e/drivers/mtd/devices/blkmtd.c
--- linux-2.4.10-ac10/drivers/mtd/devices/blkmtd.c	Wed Oct 10 21:51:44 2001
+++ linux-2.4.10-ac10-e/drivers/mtd/devices/blkmtd.c	Wed Oct 17 14:50:24 2001
@@ -229,7 +229,7 @@
   err = brw_kiovec(READ, 1, &iobuf, dev, iobuf->blocks, rawdevice->sector_size);
   DEBUG(3, "blkmtd: readpage: finished, err = %d\n", err);
   iobuf->locked = 0;
-  free_kiovec_sz(1, &iobuf, &nbhs);
+  free_kiovec(1, &iobuf);
   if(err != PAGE_SIZE) {
     printk("blkmtd: readpage: error reading page %ld\n", page->index);
     memset(page_address(page), 0, PAGE_SIZE);
@@ -364,7 +364,7 @@
   }
   remove_wait_queue(&thr_wq, &wait);
   DEBUG(1, "blkmtd: writetask: exiting\n");
-  free_kiovec_sz(1, &iobuf, &nbhs);
+  free_kiovec(1, &iobuf);
   /* Tell people we have exitd */
   up(&thread_sem);
   return 0;
diff -urN -X dontdiff linux-2.4.10-ac10/drivers/scsi/sg.c linux-2.4.10-ac10-e/drivers/scsi/sg.c
--- linux-2.4.10-ac10/drivers/scsi/sg.c	Wed Oct 10 21:52:00 2001
+++ linux-2.4.10-ac10-e/drivers/scsi/sg.c	Wed Oct 17 14:45:24 2001
@@ -1472,7 +1472,6 @@
 
 static void sg_unmap_and(Sg_scatter_hold * schp, int free_also)
 {
-	int	nbhs = KIO_MAX_SECTORS;
 
 #ifdef SG_ALLOW_DIO_CODE
     if (schp && schp->kiobp) {
@@ -1481,7 +1480,7 @@
 	    schp->mapped = 0;
 	}
 	if (free_also) {
-	    free_kiovec_sz(1, &schp->kiobp, &nbhs);
+	    free_kiovec(1, &schp->kiobp);
 	    schp->kiobp = NULL;
 	}
     }
diff -urN -X dontdiff linux-2.4.10-ac10/fs/iobuf.c linux-2.4.10-ac10-e/fs/iobuf.c
--- linux-2.4.10-ac10/fs/iobuf.c	Wed Oct 10 21:52:08 2001
+++ linux-2.4.10-ac10-e/fs/iobuf.c	Wed Oct 17 14:57:48 2001
@@ -45,6 +45,7 @@
 	iobuf->array_len = KIO_STATIC_PAGES;
 	iobuf->maplist   = iobuf->map_array;
 	iobuf->nr_pages = 0;
+	iobuf->buffers = 0;
 	iobuf->locked = 0;
 	iobuf->io_count.counter = 0;
 	iobuf->end_io = NULL;
@@ -62,6 +63,7 @@
 			}
 			return -ENOMEM;
 		}
+	kiobuf->buffers = sz;
 	return 0;
 }
 
@@ -79,28 +81,27 @@
 {
 	int i;
 	struct kiobuf *iobuf;
-	int	*tszp = szp;
-	
+
 	for (i = 0; i < nr; i++) {
 		iobuf = kmem_cache_alloc(kiobuf_cachep, SLAB_KERNEL);
 		if (!iobuf) {
-			free_kiovec_sz(i, bufp, szp);
+			free_kiovec(i, bufp);
 			return -ENOMEM;
 		}
 		kiobuf_init(iobuf);
- 		if (alloc_kiobuf_bhs_sz(iobuf,*tszp)) {
+ 		if (alloc_kiobuf_bhs_sz(iobuf, *szp)) {
 			kmem_cache_free(kiobuf_cachep, iobuf);
- 			free_kiovec_sz(i, bufp, szp);
+ 			free_kiovec(i, bufp);
  			return -ENOMEM;
  		}
-		tszp++;
+		szp++;
 		bufp[i] = iobuf;
 	}
 	
 	return 0;
 }
 
-void free_kiovec_sz(int nr, struct kiobuf **bufp, int *szp) 
+void free_kiovec(int nr, struct kiobuf **bufp) 
 {
 	int i;
 	struct kiobuf *iobuf;
@@ -111,9 +112,8 @@
 			unlock_kiovec(1, &iobuf);
 		if (iobuf->array_len > KIO_STATIC_PAGES)
 			kfree (iobuf->maplist);
-		free_kiobuf_bhs_sz(iobuf,*szp);
+		free_kiobuf_bhs_sz(iobuf, iobuf->buffers);
 		kmem_cache_free(kiobuf_cachep, bufp[i]);
-		szp++;
 	}
 }
 
diff -urN -X dontdiff linux-2.4.10-ac10/include/linux/iobuf.h linux-2.4.10-ac10-e/include/linux/iobuf.h
--- linux-2.4.10-ac10/include/linux/iobuf.h	Wed Oct 10 21:52:15 2001
+++ linux-2.4.10-ac10-e/include/linux/iobuf.h	Wed Oct 17 14:48:14 2001
@@ -36,6 +36,7 @@
 	int		array_len;	/* Space in the allocated lists */
 	int		offset;		/* Offset to start of valid data */
 	int		length;		/* Number of valid bytes of data */
+	int		buffers;	/* So many used in bh[] */
 
 	/* Keep separate track of the physical addresses and page
 	 * structs involved.  If we do IO to a memory-mapped device
@@ -72,7 +73,7 @@
 void	end_kio_request(struct kiobuf *, int);
 void	simple_wakeup_kiobuf(struct kiobuf *);
 int	alloc_kiovec_sz(int nr, struct kiobuf **, int *);
-void	free_kiovec_sz(int nr, struct kiobuf **, int *);
+void	free_kiovec(int nr, struct kiobuf **);
 int	expand_kiobuf(struct kiobuf *, int);
 void	kiobuf_wait_for_io(struct kiobuf *);
 extern int alloc_kiobuf_bhs(struct kiobuf *);
diff -urN -X dontdiff linux-2.4.10-ac10/kernel/ksyms.c linux-2.4.10-ac10-e/kernel/ksyms.c
--- linux-2.4.10-ac10/kernel/ksyms.c	Wed Oct 10 21:52:16 2001
+++ linux-2.4.10-ac10-e/kernel/ksyms.c	Wed Oct 17 14:47:51 2001
@@ -395,7 +395,7 @@
 
 /* Kiobufs */
 EXPORT_SYMBOL(alloc_kiovec_sz);
-EXPORT_SYMBOL(free_kiovec_sz);
+EXPORT_SYMBOL(free_kiovec);
 EXPORT_SYMBOL(expand_kiobuf);
 
 EXPORT_SYMBOL(map_user_kiobuf);

                 reply	other threads:[~2001-10-17 22:17 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20011017181754.A6918@devserv.devel.redhat.com \
    --to=zaitcev@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    /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.