On Fri, Sep 24, 2010 at 6:38 AM, sri <[email protected]> wrote:
> static int eater_write(struct file *file, const char *buf, size_t lbuf,
> loff_t *ppos)
> actual_data_allowed_to_write = MAXSIZE - *ppos;
> if(actual_data_allowed_to_write == 0)
Perhaps <= 0 is what you should check here, just in case?
> {
> printk("Device has no space to write. format it\n");
> return(actual_data_allowed_to_write);
> }
As John noted, you might want to return -ENOMEM, or something like that.
> //if available space can accommodate data to write
> if(actual_data_allowed_to_write > lbuf)
> data_to_copy=lbuf;
> //if available space can't accommodate date to write
> if(actual_data_allowed_to_write < lbuf)
> data_to_copy=actual_data_allowed_to_write;
I believe that "else" would be faster than having a second comparison.
What happens when
(actual_data_allowed_to_write == lbuf) ?
> data_written=copy_from_user(eater_space + *ppos, /* to */ \
> buf, /* from */ \
> data_to_copy);
>
Did you want to check (data_to_copy == data_written) ?
--
Alison Chaiken
(650) 279-5600 (cell)
http://www.exerciseforthereader.org/
The only real deadline in life is the one where you actually die. -- Eliot D.
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ