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.