Error: the initial value has an unknown field 'ioctl'

Source: Internet
Author: User
Tags flock
This error is found on the Internet. In version 3.0.0.15, The file_operation struct of the kernel has deleted the ioctl function, replacing the following:
Long (* unlocked_ioctl) (struct file *, unsigned int, unsigned long );
Long (* compat_ioctl) (struct file *, unsigned int, unsigned long );

File_operation struct is defined in/usr/src/linux-3.0.0.15/include/Linux/fs. h.

1546 struct file_operations {1547         struct module *owner;1548         loff_t (*llseek) (struct file *, loff_t, int);1549         ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);1550         ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);1551         ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);1552         ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);1553         int (*readdir) (struct file *, void *, filldir_t);1554         unsigned int (*poll) (struct file *, struct poll_table_struct *);1555         long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);1556         long (*compat_ioctl) (struct file *, unsigned int, unsigned long);1557         int (*mmap) (struct file *, struct vm_area_struct *);1558         int (*open) (struct inode *, struct file *);1559         int (*flush) (struct file *, fl_owner_t id);1560         int (*release) (struct inode *, struct file *);1561         int (*fsync) (struct file *, int datasync);1562         int (*aio_fsync) (struct kiocb *, int datasync);1563         int (*fasync) (int, struct file *, int);1564         int (*lock) (struct file *, int, struct file_lock *);1565         ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);1566         unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);1567         int (*check_flags)(int);1568         int (*flock) (struct file *, int, struct file_lock *);1569         ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);1570         ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);1571         int (*setlease)(struct file *, long, struct file_lock **);1572         long (*fallocate)(struct file *file, int mode, loff_t offset,1573                           loff_t len);1574 };

The definition of file_operation in 2.6.30.4 is as follows:

1484 struct file_operations {1485         struct module *owner;1486         loff_t (*llseek) (struct file *, loff_t, int);1487         ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);1488         ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);1489         ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);1490         ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);1491         int (*readdir) (struct file *, void *, filldir_t);1492         unsigned int (*poll) (struct file *, struct poll_table_struct *);1493         int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);1494         long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);1495         long (*compat_ioctl) (struct file *, unsigned int, unsigned long);1496         int (*mmap) (struct file *, struct vm_area_struct *);1497         int (*open) (struct inode *, struct file *);1498         int (*flush) (struct file *, fl_owner_t id);1499         int (*release) (struct inode *, struct file *);1500         int (*fsync) (struct file *, struct dentry *, int datasync);1501         int (*aio_fsync) (struct kiocb *, int datasync);1502         int (*fasync) (int, struct file *, int);1503         int (*lock) (struct file *, int, struct file_lock *);1504         ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);1505         unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);1506         int (*check_flags)(int);1507         int (*flock) (struct file *, int, struct file_lock *);1508         ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);1509         ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);1510         int (*setlease)(struct file *, long, struct file_lock **);1511 };

Modify the value of file_operation:
. Unlocked_ioctl = xxx_ioctl

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.