[Question] kernel 2.6.3 writring on device ?

From: Sébastien BOMBAL
Date: Fri Jun 25 2004 - 09:24:05 EST



Hi,

I have a little problem with a module.

I am trying to write a cryptoloop like. It is working, and I crypt the I/O.

Then I had a IOCTL in order to store the algorythm and cipher used in the
beginning of the backend device to a fixed offset.

I get from the user land a file descriptor, and I get the file structure from
fget().

tmcrypt represents a structure of the device which crypts, and
cryptonit_backing_file is the file structure for the backend device.

The problem is : the kernel freeze jut after the end of the IOCTL. (from the
log..). But If I comment the line of the write operation, everythning is
normal. Any ideas ?

Thanks for your help.

Regards.


/** FIXME **/

tmpcrypt->cryptonit_backend_file->f_pos = 0;

if(IS_RDONLY(tmpcrypt->cryptonit_backend_file->f_dentry->d_inode)
|| (NULL == tmpcrypt->cryptonit_backend_file->f_op->write)){
err = -EACCES;
printk (KERN_ERR "cryptonit : Inode is readonly ?\n");
goto out_free_tfm;
}

printk(KERN_DEBUG "cryptonit : not readonly\n");

err = get_write_access(tmpcrypt->cryptonit_backend_file->f_dentry->d_inode);
if (err){
printk (KERN_ERR "cryptonit : cryptonit cannot get_write_access\n");
goto out_free_tfm;
}

printk(KERN_DEBUG "cryptonit : down semaphore backing file\n");
down(&tmpcrypt->cryptonit_backend_file->f_mapping->host->i_sem);

err =
tmpcrypt->cryptonit_backend_file->f_op->write(tmpcrypt->cryptonit_backend_file,
"test", 4,
&tmpcrypt->cryptonit_backend_file->f_pos);

printk(KERN_DEBUG "cryptonit : up semaphore backing file\n");
up(&tmpcrypt->cryptonit_backend_file->f_mapping->host->i_sem);

/******** END *********/

--
Sébastien BOMBAL - IDEALX
Ingénieur Développeur
EPITA - SRS.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/