[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <mmmmkc$5dp$1@327.eternal-september.org>
Date: Sat, 27 Jun 2015 19:32:39 +0200
From: Andreas Hartmann <andihartmann@...19freenet.de>
To: linux-kernel@...r.kernel.org
Subject: f_op->read seems to be always NULL since Linux 4.1
Hello!
Given is a module like the following snippet running fine w/ Linux 4.0
and ext4 fs - but doesn't work w/ Linux 4.1 because f->f_op->read is not
defined any more (= NULL). Is this the intended behavior now?
vfs_read(f, buf, 128, &f->f_pos) works fine.
module.c
--------------------------------------------------------------------
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <asm/uaccess.h>
int init_module(void)
{
struct file *f;
char buf[128];
mm_segment_t fs;
int i;
int len=128;
for(i=0;i<len;i++)
buf[i] = 0;
printk(KERN_INFO "My module is loaded\n");
f = filp_open("/etc/fedora-release", O_RDONLY, 0);
if(f == NULL)
printk(KERN_ALERT "filp_open error!!.\n");
else{
fs = get_fs();
set_fs(get_ds());
if (f->f_op->read) {
f->f_op->read(f, buf, len, &f->f_pos);
printk(KERN_INFO "buf:%s\n",buf);
}
else {
printk(KERN_INFO "No read method\n");
}
set_fs(fs);
}
filp_close(f,NULL);
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "My module is unloaded\n");
}
-----------------------------------------------------------
Makefile:
-----------------------------------------------------------
obj-m += module.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
------------------------------------------------------------
Regards,
Andreas
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists