Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Oct 2006 18:12:42 -0700 (PDT)
From:      Shane Adams <adamsch1@yahoo.com>
To:        freebsd-fs@freebsd.org
Subject:   curiosity between bread and UFS_BALLOC on struct buf
Message-ID:  <20061003011243.19533.qmail@web31812.mail.mud.yahoo.com>

next in thread | raw e-mail | index | archive | help

Hey all,

I've been puzzling with a bit of code.  I'm creating a file from within a kernel module, that works fine, but I've got a question if perhaps I'm missing something:

I use UFS_BALLOC to allocate some space.  That function has a struct buf thats returned.  What I would expect is that I could manipulate the bp->b_data field then do a bwrite and have my changes saved.  Doesnt work that way.  Only way
I can get it to work is

1 UFS_BALLOC( ... )

2 bwrite( .. )

3 bread( ... )

4 /* Make changes to what I read */

5 bwrite()

Seems like I could get rid of, 2 and 3.  I'm not sure why I have to bwrite the buffer returned from UFS_BALLOC.  I dug around and there are a few examples of where ffs/ufs manipulate the buffer returned from UFS_BALLOC so I am guessing I'm missing a flag or something.

Hope the question is clear enough!

Cheers,
  Shane





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061003011243.19533.qmail>