Cleaned up naming conventions in blockdev
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 13 Oct 2010 18:28:02 +0000 (11:28 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:55 +0000 (17:35 -0700)
Also put a check for block 0.  There are probably some legitimate uses,
but not yet.

kern/include/blockdev.h
kern/src/blockdev.c
kern/src/ext2fs.c

index ae60b37..7e63ed9 100644 (file)
@@ -58,10 +58,10 @@ struct kmem_cache *bh_kcache;
 
 /* Buffer Head Requests.  For now, just use these for dealing with non-file IO
  * on a block device.  Tell it what size you think blocks are. */
 
 /* Buffer Head Requests.  For now, just use these for dealing with non-file IO
  * on a block device.  Tell it what size you think blocks are. */
-struct buffer_head *get_buffer(struct block_device *bdev, unsigned long blk_num,
-                               unsigned int blk_sz);
-void dirty_buffer(struct buffer_head *bh);
-void put_buffer(struct buffer_head *bh);
+struct buffer_head *bdev_get_buffer(struct block_device *bdev,
+                                    unsigned long blk_num, unsigned int blk_sz);
+void bdev_dirty_buffer(struct buffer_head *bh);
+void bdev_put_buffer(struct buffer_head *bh);
 
 /* This encapsulates the work of a request (instead of having a variety of
  * slightly-different functions for things like read/write and scatter-gather
 
 /* This encapsulates the work of a request (instead of having a variety of
  * slightly-different functions for things like read/write and scatter-gather
@@ -90,6 +90,6 @@ void block_init(void);
 struct block_device *get_bdev(char *path);
 void free_bhs(struct page *page);
 /* This function will probably be the one that blocks */
 struct block_device *get_bdev(char *path);
 void free_bhs(struct page *page);
 /* This function will probably be the one that blocks */
-int make_request(struct block_device *bdev, struct block_request *req);
+int bdev_submit_request(struct block_device *bdev, struct block_request *req);
 
 #endif /* ROS_KERN_BLOCKDEV_H */
 
 #endif /* ROS_KERN_BLOCKDEV_H */
index b050f77..18ba977 100644 (file)
@@ -80,7 +80,7 @@ void free_bhs(struct page *page)
 /* This ultimately will handle the actual request processing, all the way down
  * to the driver, and will deal with blocking.  For now, we just fulfill the
  * request right away (RAM based block devs). */
 /* This ultimately will handle the actual request processing, all the way down
  * to the driver, and will deal with blocking.  For now, we just fulfill the
  * request right away (RAM based block devs). */
-int make_request(struct block_device *bdev, struct block_request *req)
+int bdev_submit_request(struct block_device *bdev, struct block_request *req)
 {
        void *src, *dst;
        unsigned long first_sector;
 {
        void *src, *dst;
        unsigned long first_sector;
@@ -129,8 +129,8 @@ int block_readpage(struct page_map *pm, struct page *page)
  *
  * Also note we're a little inconsistent with the use of sector sizes in certain
  * files.  We'll sort it eventually. */
  *
  * Also note we're a little inconsistent with the use of sector sizes in certain
  * files.  We'll sort it eventually. */
-struct buffer_head *get_buffer(struct block_device *bdev, unsigned long blk_num,
-                               unsigned int blk_sz)
+struct buffer_head *bdev_get_buffer(struct block_device *bdev,
+                                    unsigned long blk_num, unsigned int blk_sz)
 {
        struct page *page;
        struct page_map *pm = &bdev->b_pm;
 {
        struct page *page;
        struct page_map *pm = &bdev->b_pm;
@@ -140,8 +140,10 @@ struct buffer_head *get_buffer(struct block_device *bdev, unsigned long blk_num,
        unsigned int blk_per_pg = PGSIZE / blk_sz;
        unsigned int sct_per_blk = blk_sz / bdev->b_sector_sz;
        unsigned int blk_offset = (blk_num % blk_per_pg) * blk_sz;
        unsigned int blk_per_pg = PGSIZE / blk_sz;
        unsigned int sct_per_blk = blk_sz / bdev->b_sector_sz;
        unsigned int blk_offset = (blk_num % blk_per_pg) * blk_sz;
-       assert(blk_offset < PGSIZE);
        void *my_buf;
        void *my_buf;
+       assert(blk_offset < PGSIZE);
+       if (!blk_num)
+               warn("Asking for the 0th block of a bdev...");
        /* Make sure there's a page in the page cache.  Should always be one. */
        error = pm_load_page(pm, blk_num / blk_per_pg, &page); 
        if (error)
        /* Make sure there's a page in the page cache.  Should always be one. */
        error = pm_load_page(pm, blk_num / blk_per_pg, &page); 
        if (error)
@@ -200,7 +202,7 @@ found:
        breq->bhs = breq->local_bhs;
        breq->bhs[0] = bh;
        breq->nr_bhs = 1;
        breq->bhs = breq->local_bhs;
        breq->bhs[0] = bh;
        breq->nr_bhs = 1;
-       error = make_request(bdev, breq);
+       error = bdev_submit_request(bdev, breq);
        /* TODO: (BLK) this assumes we slept til the request was done */
        assert(!error);
        kmem_cache_free(breq_kcache, breq);
        /* TODO: (BLK) this assumes we slept til the request was done */
        assert(!error);
        kmem_cache_free(breq_kcache, breq);
@@ -213,7 +215,7 @@ found:
 /* Will dirty the block/BH/page for the given block/buffer.  Will have to be
  * careful with the page reclaimer - if someone holds a reference, they can
  * still dirty it. */
 /* Will dirty the block/BH/page for the given block/buffer.  Will have to be
  * careful with the page reclaimer - if someone holds a reference, they can
  * still dirty it. */
-void dirty_buffer(struct buffer_head *bh)
+void bdev_dirty_buffer(struct buffer_head *bh)
 {
        struct page *page = bh->bh_page;
        /* TODO: race on flag modification */
 {
        struct page *page = bh->bh_page;
        /* TODO: race on flag modification */
@@ -221,10 +223,10 @@ void dirty_buffer(struct buffer_head *bh)
        page->pg_flags |= PG_DIRTY;
 }
 
        page->pg_flags |= PG_DIRTY;
 }
 
-/* Decrefs the buffer from get_buffer().  Call this when you no longer reference
- * your block/buffer.  For now, we do refcnting on the page, since the
+/* Decrefs the buffer from bdev_get_buffer().  Call this when you no longer
+ * reference your block/buffer.  For now, we do refcnting on the page, since the
  * reclaiming will be in page sized chunks from the page cache. */
  * reclaiming will be in page sized chunks from the page cache. */
-void put_buffer(struct buffer_head *bh)
+void bdev_put_buffer(struct buffer_head *bh)
 {
        page_decref(bh->bh_page);
 }
 {
        page_decref(bh->bh_page);
 }
index fc8b04a..783f68e 100644 (file)
@@ -111,7 +111,7 @@ void ext2_init(void)
 void *__ext2_get_metablock(struct block_device *bdev, unsigned long blk_num,
                            unsigned int blk_sz)
 {
 void *__ext2_get_metablock(struct block_device *bdev, unsigned long blk_num,
                            unsigned int blk_sz)
 {
-       return get_buffer(bdev, blk_num, blk_sz)->bh_buffer;
+       return bdev_get_buffer(bdev, blk_num, blk_sz)->bh_buffer;
 }
 
 /* Convenience wrapper */
 }
 
 /* Convenience wrapper */
@@ -141,12 +141,12 @@ static struct buffer_head *ext2_my_bh(struct super_block *sb, void *addr)
 
 /* Decrefs the buffer from get_metablock().  Call this when you no longer
  * reference your metadata block/buffer.  Yes, we could just decref the page,
 
 /* Decrefs the buffer from get_metablock().  Call this when you no longer
  * reference your metadata block/buffer.  Yes, we could just decref the page,
- * but this will work if we end up changing how put_buffer() works. */
+ * but this will work if we end up changing how bdev_put_buffer() works. */
 void ext2_put_metablock(struct super_block *sb, void *buffer)
 {
        struct buffer_head *bh = ext2_my_bh(sb, buffer);
        if (bh)
 void ext2_put_metablock(struct super_block *sb, void *buffer)
 {
        struct buffer_head *bh = ext2_my_bh(sb, buffer);
        if (bh)
-               put_buffer(bh);
+               bdev_put_buffer(bh);
 }
 
 /* Will dirty the block/BH/page for the given metadata block/buffer. */
 }
 
 /* Will dirty the block/BH/page for the given metadata block/buffer. */
@@ -154,7 +154,7 @@ void ext2_dirty_metablock(struct super_block *sb, void *buffer)
 {
        struct buffer_head *bh = ext2_my_bh(sb, buffer);
        if (bh)
 {
        struct buffer_head *bh = ext2_my_bh(sb, buffer);
        if (bh)
-               dirty_buffer(bh);
+               bdev_dirty_buffer(bh);
 }
 
 /* Helper for alloc_block.  It will try to alloc a block from the BG, starting
 }
 
 /* Helper for alloc_block.  It will try to alloc a block from the BG, starting
@@ -736,7 +736,7 @@ int ext2_readpage(struct page_map *pm, struct page *page)
                }
        }
        /* TODO: (BLK) this assumes we slept til the request was done */
                }
        }
        /* TODO: (BLK) this assumes we slept til the request was done */
-       retval = make_request(bdev, breq);
+       retval = bdev_submit_request(bdev, breq);
        assert(!retval);
        /* zero out whatever is beyond the EOF.  we could do this by figuring out
         * where the BHs end and zeroing from there, but I'd rather zero from where
        assert(!retval);
        /* zero out whatever is beyond the EOF.  we could do this by figuring out
         * where the BHs end and zeroing from there, but I'd rather zero from where