forked from Minki/linux
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs pile (part one) from Al Viro: "Assorted stuff - cleaning namei.c up a bit, fixing ->d_name/->d_parent locking violations, etc. The most visible changes here are death of FS_REVAL_DOT (replaced with "has ->d_weak_revalidate()") and a new helper getting from struct file to inode. Some bits of preparation to xattr method interface changes. Misc patches by various people sent this cycle *and* ocfs2 fixes from several cycles ago that should've been upstream right then. PS: the next vfs pile will be xattr stuff." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits) saner proc_get_inode() calling conventions proc: avoid extra pde_put() in proc_fill_super() fs: change return values from -EACCES to -EPERM fs/exec.c: make bprm_mm_init() static ocfs2/dlm: use GFP_ATOMIC inside a spin_lock ocfs2: fix possible use-after-free with AIO ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path get_empty_filp()/alloc_file() leave both ->f_pos and ->f_version zero target: writev() on single-element vector is pointless export kernel_write(), convert open-coded instances fs: encode_fh: return FILEID_INVALID if invalid fid_type kill f_vfsmnt vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op nfsd: handle vfs_getattr errors in acl protocol switch vfs_getattr() to struct path default SET_PERSONALITY() in linux/elf.h ceph: prepopulate inodes only when request is aborted d_hash_and_lookup(): export, switch open-coded instances 9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate() 9p: split dropping the acls from v9fs_set_create_acl() ...
This commit is contained in:
commit
d895cb1af1
@ -10,6 +10,7 @@ be able to use diff(1).
|
||||
--------------------------- dentry_operations --------------------------
|
||||
prototypes:
|
||||
int (*d_revalidate)(struct dentry *, unsigned int);
|
||||
int (*d_weak_revalidate)(struct dentry *, unsigned int);
|
||||
int (*d_hash)(const struct dentry *, const struct inode *,
|
||||
struct qstr *);
|
||||
int (*d_compare)(const struct dentry *, const struct inode *,
|
||||
@ -25,6 +26,7 @@ prototypes:
|
||||
locking rules:
|
||||
rename_lock ->d_lock may block rcu-walk
|
||||
d_revalidate: no no yes (ref-walk) maybe
|
||||
d_weak_revalidate:no no yes no
|
||||
d_hash no no no maybe
|
||||
d_compare: yes no no maybe
|
||||
d_delete: no yes no no
|
||||
|
@ -441,3 +441,7 @@ d_make_root() drops the reference to inode if dentry allocation fails.
|
||||
two, it gets "is it an O_EXCL or equivalent?" boolean argument. Note that
|
||||
local filesystems can ignore tha argument - they are guaranteed that the
|
||||
object doesn't exist. It's remote/distributed ones that might care...
|
||||
--
|
||||
[mandatory]
|
||||
FS_REVAL_DOT is gone; if you used to have it, add ->d_weak_revalidate()
|
||||
in your dentry operations instead.
|
||||
|
@ -900,6 +900,7 @@ defined:
|
||||
|
||||
struct dentry_operations {
|
||||
int (*d_revalidate)(struct dentry *, unsigned int);
|
||||
int (*d_weak_revalidate)(struct dentry *, unsigned int);
|
||||
int (*d_hash)(const struct dentry *, const struct inode *,
|
||||
struct qstr *);
|
||||
int (*d_compare)(const struct dentry *, const struct inode *,
|
||||
@ -915,8 +916,13 @@ struct dentry_operations {
|
||||
|
||||
d_revalidate: called when the VFS needs to revalidate a dentry. This
|
||||
is called whenever a name look-up finds a dentry in the
|
||||
dcache. Most filesystems leave this as NULL, because all their
|
||||
dentries in the dcache are valid
|
||||
dcache. Most local filesystems leave this as NULL, because all their
|
||||
dentries in the dcache are valid. Network filesystems are different
|
||||
since things can change on the server without the client necessarily
|
||||
being aware of it.
|
||||
|
||||
This function should return a positive value if the dentry is still
|
||||
valid, and zero or a negative error code if it isn't.
|
||||
|
||||
d_revalidate may be called in rcu-walk mode (flags & LOOKUP_RCU).
|
||||
If in rcu-walk mode, the filesystem must revalidate the dentry without
|
||||
@ -927,6 +933,20 @@ struct dentry_operations {
|
||||
If a situation is encountered that rcu-walk cannot handle, return
|
||||
-ECHILD and it will be called again in ref-walk mode.
|
||||
|
||||
d_weak_revalidate: called when the VFS needs to revalidate a "jumped" dentry.
|
||||
This is called when a path-walk ends at dentry that was not acquired by
|
||||
doing a lookup in the parent directory. This includes "/", "." and "..",
|
||||
as well as procfs-style symlinks and mountpoint traversal.
|
||||
|
||||
In this case, we are less concerned with whether the dentry is still
|
||||
fully correct, but rather that the inode is still valid. As with
|
||||
d_revalidate, most local filesystems will set this to NULL since their
|
||||
dcache entries are always valid.
|
||||
|
||||
This function has the same return code semantics as d_revalidate.
|
||||
|
||||
d_weak_revalidate is only called after leaving rcu-walk mode.
|
||||
|
||||
d_hash: called when the VFS adds a dentry to the hash table. The first
|
||||
dentry passed to d_hash is the parent directory that the name is
|
||||
to be hashed into. The inode is the dentry's inode.
|
||||
|
@ -111,7 +111,7 @@ static ssize_t srm_env_proc_write(struct file *file, const char __user *buffer,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
int res;
|
||||
srm_env_t *entry = PDE(file->f_path.dentry->d_inode)->data;
|
||||
srm_env_t *entry = PDE(file_inode(file))->data;
|
||||
char *buf = (char *) __get_free_page(GFP_USER);
|
||||
unsigned long ret1, ret2;
|
||||
|
||||
|
@ -102,7 +102,4 @@ typedef struct user_fpu_struct elf_fpregset_t;
|
||||
|
||||
#define ELF_PLATFORM (NULL)
|
||||
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX_32BIT | (current->personality & (~PER_MASK)))
|
||||
|
||||
#endif /* __ASM_AVR32_ELF_H */
|
||||
|
@ -132,7 +132,4 @@ do { \
|
||||
|
||||
#define ELF_PLATFORM (NULL)
|
||||
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
|
||||
#endif
|
||||
|
@ -116,7 +116,7 @@ static const struct seq_operations cplbinfo_sops = {
|
||||
|
||||
static int cplbinfo_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *pde = PDE(file_inode(file));
|
||||
char cplb_type;
|
||||
unsigned int cpu;
|
||||
int ret;
|
||||
|
@ -77,9 +77,6 @@ do { \
|
||||
|
||||
#define ELF_PLATFORM (NULL)
|
||||
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
|
||||
/* C6X specific section types */
|
||||
#define SHT_C6000_UNWIND 0x70000001
|
||||
#define SHT_C6000_PREEMPTMAP 0x70000002
|
||||
|
@ -654,7 +654,7 @@ static int sync_serial_release(struct inode *inode, struct file *file)
|
||||
|
||||
static unsigned int sync_serial_poll(struct file *file, poll_table *wait)
|
||||
{
|
||||
int dev = MINOR(file->f_dentry->d_inode->i_rdev);
|
||||
int dev = MINOR(file_inode(file)->i_rdev);
|
||||
unsigned int mask = 0;
|
||||
struct sync_port *port;
|
||||
DEBUGPOLL(static unsigned int prev_mask = 0);
|
||||
@ -685,7 +685,7 @@ static int sync_serial_ioctl_unlocked(struct file *file,
|
||||
int return_val = 0;
|
||||
unsigned long flags;
|
||||
|
||||
int dev = MINOR(file->f_dentry->d_inode->i_rdev);
|
||||
int dev = MINOR(file_inode(file)->i_rdev);
|
||||
struct sync_port *port;
|
||||
|
||||
if (dev < 0 || dev >= NUMBER_OF_PORTS || !ports[dev].enabled) {
|
||||
@ -973,7 +973,7 @@ static long sync_serial_ioctl(struct file *file,
|
||||
static ssize_t sync_serial_write(struct file *file, const char *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
int dev = MINOR(file->f_dentry->d_inode->i_rdev);
|
||||
int dev = MINOR(file_inode(file)->i_rdev);
|
||||
DECLARE_WAITQUEUE(wait, current);
|
||||
struct sync_port *port;
|
||||
unsigned long flags;
|
||||
@ -1097,7 +1097,7 @@ static ssize_t sync_serial_write(struct file *file, const char *buf,
|
||||
static ssize_t sync_serial_read(struct file *file, char *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
int dev = MINOR(file->f_dentry->d_inode->i_rdev);
|
||||
int dev = MINOR(file_inode(file)->i_rdev);
|
||||
int avail;
|
||||
struct sync_port *port;
|
||||
unsigned char *start;
|
||||
|
@ -3135,11 +3135,10 @@ static long cryptocop_ioctl_unlocked(struct inode *inode,
|
||||
static long
|
||||
cryptocop_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
long ret;
|
||||
|
||||
mutex_lock(&cryptocop_mutex);
|
||||
ret = cryptocop_ioctl_unlocked(inode, filp, cmd, arg);
|
||||
ret = cryptocop_ioctl_unlocked(file_inode(filp), filp, cmd, arg);
|
||||
mutex_unlock(&cryptocop_mutex);
|
||||
|
||||
return ret;
|
||||
|
@ -609,7 +609,7 @@ static int sync_serial_release(struct inode *inode, struct file *file)
|
||||
|
||||
static unsigned int sync_serial_poll(struct file *file, poll_table *wait)
|
||||
{
|
||||
int dev = iminor(file->f_path.dentry->d_inode);
|
||||
int dev = iminor(file_inode(file));
|
||||
unsigned int mask = 0;
|
||||
sync_port *port;
|
||||
DEBUGPOLL( static unsigned int prev_mask = 0; );
|
||||
@ -657,7 +657,7 @@ static int sync_serial_ioctl(struct file *file,
|
||||
{
|
||||
int return_val = 0;
|
||||
int dma_w_size = regk_dma_set_w_size1;
|
||||
int dev = iminor(file->f_path.dentry->d_inode);
|
||||
int dev = iminor(file_inode(file));
|
||||
sync_port *port;
|
||||
reg_sser_rw_tr_cfg tr_cfg;
|
||||
reg_sser_rw_rec_cfg rec_cfg;
|
||||
@ -979,7 +979,7 @@ static long sync_serial_ioctl(struct file *file,
|
||||
static ssize_t sync_serial_write(struct file *file, const char *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
int dev = iminor(file->f_path.dentry->d_inode);
|
||||
int dev = iminor(file_inode(file));
|
||||
DECLARE_WAITQUEUE(wait, current);
|
||||
struct sync_port *port;
|
||||
int trunc_count;
|
||||
@ -1102,7 +1102,7 @@ static ssize_t sync_serial_write(struct file *file, const char *buf,
|
||||
static ssize_t sync_serial_read(struct file * file, char * buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
int dev = iminor(file->f_path.dentry->d_inode);
|
||||
int dev = iminor(file_inode(file));
|
||||
int avail;
|
||||
sync_port *port;
|
||||
unsigned char* start;
|
||||
|
@ -86,7 +86,4 @@ typedef unsigned long elf_fpregset_t;
|
||||
|
||||
#define ELF_PLATFORM (NULL)
|
||||
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
|
||||
#endif
|
||||
|
@ -137,7 +137,4 @@ do { \
|
||||
|
||||
#define ELF_PLATFORM (NULL)
|
||||
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
|
||||
#endif
|
||||
|
@ -54,9 +54,6 @@ typedef unsigned long elf_fpregset_t;
|
||||
|
||||
#define ELF_PLATFORM (NULL)
|
||||
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
|
||||
#define R_H8_NONE 0
|
||||
#define R_H8_DIR32 1
|
||||
#define R_H8_DIR32_28 2
|
||||
|
@ -216,11 +216,6 @@ do { \
|
||||
*/
|
||||
#define ELF_PLATFORM (NULL)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
#endif
|
||||
|
||||
#define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
|
||||
struct linux_binprm;
|
||||
extern int arch_setup_additional_pages(struct linux_binprm *bprm,
|
||||
|
@ -201,9 +201,6 @@ extern void ia64_elf_core_copy_regs (struct pt_regs *src, elf_gregset_t dst);
|
||||
relevant until we have real hardware to play with... */
|
||||
#define ELF_PLATFORM NULL
|
||||
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality((current->personality & ~PER_MASK) | PER_LINUX)
|
||||
|
||||
#define elf_read_implies_exec(ex, executable_stack) \
|
||||
((executable_stack!=EXSTACK_DISABLE_X) && ((ex).e_flags & EF_IA_64_LINUX_EXECUTABLE_STACK) != 0)
|
||||
|
||||
|
@ -2221,9 +2221,9 @@ pfm_alloc_file(pfm_context_t *ctx)
|
||||
d_add(path.dentry, inode);
|
||||
|
||||
file = alloc_file(&path, FMODE_READ, &pfm_file_ops);
|
||||
if (!file) {
|
||||
if (IS_ERR(file)) {
|
||||
path_put(&path);
|
||||
return ERR_PTR(-ENFILE);
|
||||
return file;
|
||||
}
|
||||
|
||||
file->f_flags = O_RDONLY;
|
||||
|
@ -301,7 +301,7 @@ salinfo_event_open(struct inode *inode, struct file *file)
|
||||
static ssize_t
|
||||
salinfo_event_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
struct proc_dir_entry *entry = PDE(inode);
|
||||
struct salinfo_data *data = entry->data;
|
||||
char cmd[32];
|
||||
@ -463,7 +463,7 @@ retry:
|
||||
static ssize_t
|
||||
salinfo_log_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
struct proc_dir_entry *entry = PDE(inode);
|
||||
struct salinfo_data *data = entry->data;
|
||||
u8 *buf;
|
||||
@ -524,7 +524,7 @@ salinfo_log_clear(struct salinfo_data *data, int cpu)
|
||||
static ssize_t
|
||||
salinfo_log_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
struct proc_dir_entry *entry = PDE(inode);
|
||||
struct salinfo_data *data = entry->data;
|
||||
char cmd[32];
|
||||
|
@ -128,7 +128,4 @@ typedef elf_fpreg_t elf_fpregset_t;
|
||||
intent than poking at uname or /proc/cpuinfo. */
|
||||
#define ELF_PLATFORM (NULL)
|
||||
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
|
||||
#endif /* _ASM_M32R__ELF_H */
|
||||
|
@ -113,7 +113,4 @@ typedef struct user_m68kfp_struct elf_fpregset_t;
|
||||
|
||||
#define ELF_PLATFORM (NULL)
|
||||
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
|
||||
#endif
|
||||
|
@ -399,11 +399,9 @@ static int file_release(struct inode *inode, struct file *filp)
|
||||
|
||||
static unsigned int file_poll(struct file *file, poll_table * wait)
|
||||
{
|
||||
int minor;
|
||||
int minor = iminor(file_inode(file));
|
||||
unsigned int mask = 0;
|
||||
|
||||
minor = iminor(file->f_path.dentry->d_inode);
|
||||
|
||||
poll_wait(file, &channel_wqs[minor].rt_queue, wait);
|
||||
poll_wait(file, &channel_wqs[minor].lx_queue, wait);
|
||||
|
||||
@ -424,7 +422,7 @@ static unsigned int file_poll(struct file *file, poll_table * wait)
|
||||
static ssize_t file_read(struct file *file, char __user * buffer, size_t count,
|
||||
loff_t * ppos)
|
||||
{
|
||||
int minor = iminor(file->f_path.dentry->d_inode);
|
||||
int minor = iminor(file_inode(file));
|
||||
|
||||
/* data available? */
|
||||
if (!rtlx_read_poll(minor, (file->f_flags & O_NONBLOCK) ? 0 : 1)) {
|
||||
@ -437,11 +435,8 @@ static ssize_t file_read(struct file *file, char __user * buffer, size_t count,
|
||||
static ssize_t file_write(struct file *file, const char __user * buffer,
|
||||
size_t count, loff_t * ppos)
|
||||
{
|
||||
int minor;
|
||||
struct rtlx_channel *rt;
|
||||
|
||||
minor = iminor(file->f_path.dentry->d_inode);
|
||||
rt = &rtlx->channel[minor];
|
||||
int minor = iminor(file_inode(file));
|
||||
struct rtlx_channel *rt = &rtlx->channel[minor];
|
||||
|
||||
/* any space left... */
|
||||
if (!rtlx_write_poll(minor)) {
|
||||
|
@ -1149,7 +1149,7 @@ static ssize_t vpe_write(struct file *file, const char __user * buffer,
|
||||
size_t ret = count;
|
||||
struct vpe *v;
|
||||
|
||||
if (iminor(file->f_path.dentry->d_inode) != minor)
|
||||
if (iminor(file_inode(file)) != minor)
|
||||
return -ENODEV;
|
||||
|
||||
v = get_vpe(tclimit);
|
||||
|
@ -64,7 +64,7 @@ static int pvc_line_proc_open(struct inode *inode, struct file *file)
|
||||
static ssize_t pvc_line_proc_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
int lineno = *(int *)PDE(file->f_path.dentry->d_inode)->data;
|
||||
int lineno = *(int *)PDE(file_inode(file))->data;
|
||||
char kbuf[PVC_LINELEN];
|
||||
size_t len;
|
||||
|
||||
|
@ -150,9 +150,4 @@ do { \
|
||||
*/
|
||||
#define ELF_PLATFORM (NULL)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_ELF_H */
|
||||
|
@ -62,7 +62,4 @@ extern void dump_elf_thread(elf_greg_t *dest, struct pt_regs *pt);
|
||||
|
||||
#define ELF_PLATFORM (NULL)
|
||||
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
|
||||
#endif
|
||||
|
@ -103,8 +103,6 @@ do { \
|
||||
# define elf_read_implies_exec(ex, exec_stk) (is_32bit_task() ? \
|
||||
(exec_stk == EXSTACK_DEFAULT) : 0)
|
||||
#else
|
||||
# define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
# define elf_read_implies_exec(ex, exec_stk) (exec_stk == EXSTACK_DEFAULT)
|
||||
#endif /* __powerpc64__ */
|
||||
|
||||
|
@ -32,7 +32,7 @@
|
||||
static loff_t page_map_seek( struct file *file, loff_t off, int whence)
|
||||
{
|
||||
loff_t new;
|
||||
struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
|
||||
switch(whence) {
|
||||
case 0:
|
||||
@ -55,13 +55,13 @@ static loff_t page_map_seek( struct file *file, loff_t off, int whence)
|
||||
static ssize_t page_map_read( struct file *file, char __user *buf, size_t nbytes,
|
||||
loff_t *ppos)
|
||||
{
|
||||
struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
return simple_read_from_buffer(buf, nbytes, ppos, dp->data, dp->size);
|
||||
}
|
||||
|
||||
static int page_map_mmap( struct file *file, struct vm_area_struct *vma )
|
||||
{
|
||||
struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
|
||||
if ((vma->vm_end - vma->vm_start) > dp->size)
|
||||
return -EINVAL;
|
||||
|
@ -191,7 +191,7 @@ static void free_flash_list(struct flash_block_list *f)
|
||||
|
||||
static int rtas_flash_release(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
struct rtas_update_flash_t *uf;
|
||||
|
||||
uf = (struct rtas_update_flash_t *) dp->data;
|
||||
@ -253,7 +253,7 @@ static void get_flash_status_msg(int status, char *buf)
|
||||
static ssize_t rtas_flash_read(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
struct rtas_update_flash_t *uf;
|
||||
char msg[RTAS_MSG_MAXLEN];
|
||||
|
||||
@ -282,7 +282,7 @@ void rtas_block_ctor(void *ptr)
|
||||
static ssize_t rtas_flash_write(struct file *file, const char __user *buffer,
|
||||
size_t count, loff_t *off)
|
||||
{
|
||||
struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
struct rtas_update_flash_t *uf;
|
||||
char *p;
|
||||
int next_free;
|
||||
@ -374,7 +374,7 @@ static void manage_flash(struct rtas_manage_flash_t *args_buf)
|
||||
static ssize_t manage_flash_read(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
struct rtas_manage_flash_t *args_buf;
|
||||
char msg[RTAS_MSG_MAXLEN];
|
||||
int msglen;
|
||||
@ -391,7 +391,7 @@ static ssize_t manage_flash_read(struct file *file, char __user *buf,
|
||||
static ssize_t manage_flash_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *off)
|
||||
{
|
||||
struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
struct rtas_manage_flash_t *args_buf;
|
||||
const char reject_str[] = "0";
|
||||
const char commit_str[] = "1";
|
||||
@ -462,7 +462,7 @@ static int get_validate_flash_msg(struct rtas_validate_flash_t *args_buf,
|
||||
static ssize_t validate_flash_read(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
struct rtas_validate_flash_t *args_buf;
|
||||
char msg[RTAS_MSG_MAXLEN];
|
||||
int msglen;
|
||||
@ -477,7 +477,7 @@ static ssize_t validate_flash_read(struct file *file, char __user *buf,
|
||||
static ssize_t validate_flash_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *off)
|
||||
{
|
||||
struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
struct rtas_validate_flash_t *args_buf;
|
||||
int rc;
|
||||
|
||||
@ -526,7 +526,7 @@ done:
|
||||
|
||||
static int validate_flash_release(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct proc_dir_entry *dp = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
struct rtas_validate_flash_t *args_buf;
|
||||
|
||||
args_buf = (struct rtas_validate_flash_t *) dp->data;
|
||||
|
@ -111,7 +111,7 @@ static int match_context(const void *v, struct file *file, unsigned fd)
|
||||
struct spu_context *ctx;
|
||||
if (file->f_op != &spufs_context_fops)
|
||||
return 0;
|
||||
ctx = SPUFS_I(file->f_dentry->d_inode)->i_ctx;
|
||||
ctx = SPUFS_I(file_inode(file))->i_ctx;
|
||||
if (ctx->flags & SPU_CREATE_NOSCHED)
|
||||
return 0;
|
||||
return fd + 1;
|
||||
@ -137,7 +137,7 @@ static struct spu_context *coredump_next_context(int *fd)
|
||||
return NULL;
|
||||
*fd = n - 1;
|
||||
file = fcheck(*fd);
|
||||
return SPUFS_I(file->f_dentry->d_inode)->i_ctx;
|
||||
return SPUFS_I(file_inode(file))->i_ctx;
|
||||
}
|
||||
|
||||
int spufs_coredump_extra_notes_size(void)
|
||||
|
@ -1852,7 +1852,7 @@ out:
|
||||
|
||||
static int spufs_mfc_fsync(struct file *file, loff_t start, loff_t end, int datasync)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
int err = filemap_write_and_wait_range(inode->i_mapping, start, end);
|
||||
if (!err) {
|
||||
mutex_lock(&inode->i_mutex);
|
||||
@ -2501,7 +2501,7 @@ static int switch_log_sprint(struct spu_context *ctx, char *tbuf, int n)
|
||||
static ssize_t spufs_switch_log_read(struct file *file, char __user *buf,
|
||||
size_t len, loff_t *ppos)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
struct spu_context *ctx = SPUFS_I(inode)->i_ctx;
|
||||
int error = 0, cnt = 0;
|
||||
|
||||
@ -2571,7 +2571,7 @@ static ssize_t spufs_switch_log_read(struct file *file, char __user *buf,
|
||||
|
||||
static unsigned int spufs_switch_log_poll(struct file *file, poll_table *wait)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
struct spu_context *ctx = SPUFS_I(inode)->i_ctx;
|
||||
unsigned int mask = 0;
|
||||
int rc;
|
||||
|
@ -199,37 +199,18 @@ static int spufs_fill_dir(struct dentry *dir,
|
||||
const struct spufs_tree_descr *files, umode_t mode,
|
||||
struct spu_context *ctx)
|
||||
{
|
||||
struct dentry *dentry, *tmp;
|
||||
int ret;
|
||||
|
||||
while (files->name && files->name[0]) {
|
||||
ret = -ENOMEM;
|
||||
dentry = d_alloc_name(dir, files->name);
|
||||
int ret;
|
||||
struct dentry *dentry = d_alloc_name(dir, files->name);
|
||||
if (!dentry)
|
||||
goto out;
|
||||
return -ENOMEM;
|
||||
ret = spufs_new_file(dir->d_sb, dentry, files->ops,
|
||||
files->mode & mode, files->size, ctx);
|
||||
if (ret)
|
||||
goto out;
|
||||
return ret;
|
||||
files++;
|
||||
}
|
||||
return 0;
|
||||
out:
|
||||
/*
|
||||
* remove all children from dir. dir->inode is not set so don't
|
||||
* just simply use spufs_prune_dir() and panic afterwards :)
|
||||
* dput() looks like it will do the right thing:
|
||||
* - dec parent's ref counter
|
||||
* - remove child from parent's child list
|
||||
* - free child's inode if possible
|
||||
* - free child
|
||||
*/
|
||||
list_for_each_entry_safe(dentry, tmp, &dir->d_subdirs, d_u.d_child) {
|
||||
dput(dentry);
|
||||
}
|
||||
|
||||
shrink_dcache_parent(dir);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int spufs_dir_close(struct inode *inode, struct file *file)
|
||||
@ -269,10 +250,9 @@ spufs_mkdir(struct inode *dir, struct dentry *dentry, unsigned int flags,
|
||||
struct inode *inode;
|
||||
struct spu_context *ctx;
|
||||
|
||||
ret = -ENOSPC;
|
||||
inode = spufs_new_inode(dir->i_sb, mode | S_IFDIR);
|
||||
if (!inode)
|
||||
goto out;
|
||||
return -ENOSPC;
|
||||
|
||||
if (dir->i_mode & S_ISGID) {
|
||||
inode->i_gid = dir->i_gid;
|
||||
@ -280,40 +260,38 @@ spufs_mkdir(struct inode *dir, struct dentry *dentry, unsigned int flags,
|
||||
}
|
||||
ctx = alloc_spu_context(SPUFS_I(dir)->i_gang); /* XXX gang */
|
||||
SPUFS_I(inode)->i_ctx = ctx;
|
||||
if (!ctx)
|
||||
goto out_iput;
|
||||
if (!ctx) {
|
||||
iput(inode);
|
||||
return -ENOSPC;
|
||||
}
|
||||
|
||||
ctx->flags = flags;
|
||||
inode->i_op = &simple_dir_inode_operations;
|
||||
inode->i_fop = &simple_dir_operations;
|
||||
|
||||
mutex_lock(&inode->i_mutex);
|
||||
|
||||
dget(dentry);
|
||||
inc_nlink(dir);
|
||||
inc_nlink(inode);
|
||||
|
||||
d_instantiate(dentry, inode);
|
||||
|
||||
if (flags & SPU_CREATE_NOSCHED)
|
||||
ret = spufs_fill_dir(dentry, spufs_dir_nosched_contents,
|
||||
mode, ctx);
|
||||
else
|
||||
ret = spufs_fill_dir(dentry, spufs_dir_contents, mode, ctx);
|
||||
|
||||
if (ret)
|
||||
goto out_free_ctx;
|
||||
|
||||
if (spufs_get_sb_info(dir->i_sb)->debug)
|
||||
if (!ret && spufs_get_sb_info(dir->i_sb)->debug)
|
||||
ret = spufs_fill_dir(dentry, spufs_dir_debug_contents,
|
||||
mode, ctx);
|
||||
|
||||
if (ret)
|
||||
goto out_free_ctx;
|
||||
spufs_rmdir(dir, dentry);
|
||||
|
||||
d_instantiate(dentry, inode);
|
||||
dget(dentry);
|
||||
inc_nlink(dir);
|
||||
inc_nlink(dentry->d_inode);
|
||||
goto out;
|
||||
mutex_unlock(&inode->i_mutex);
|
||||
|
||||
out_free_ctx:
|
||||
spu_forget(ctx);
|
||||
put_spu_context(ctx);
|
||||
out_iput:
|
||||
iput(inode);
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -368,7 +346,7 @@ spufs_assert_affinity(unsigned int flags, struct spu_gang *gang,
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
neighbor = get_spu_context(
|
||||
SPUFS_I(filp->f_dentry->d_inode)->i_ctx);
|
||||
SPUFS_I(file_inode(filp))->i_ctx);
|
||||
|
||||
if (!list_empty(&neighbor->aff_list) && !(neighbor->aff_head) &&
|
||||
!list_is_last(&neighbor->aff_list, &gang->aff_list_head) &&
|
||||
|
@ -47,7 +47,7 @@ static long do_spu_run(struct file *filp,
|
||||
if (filp->f_op != &spufs_context_fops)
|
||||
goto out;
|
||||
|
||||
i = SPUFS_I(filp->f_path.dentry->d_inode);
|
||||
i = SPUFS_I(file_inode(filp));
|
||||
ret = spufs_run_spu(i->i_ctx, &npc, &status);
|
||||
|
||||
if (put_user(npc, unpc))
|
||||
|
@ -86,7 +86,7 @@ static int hcall_inst_seq_open(struct inode *inode, struct file *file)
|
||||
|
||||
rc = seq_open(file, &hcall_inst_seq_ops);
|
||||
seq = file->private_data;
|
||||
seq->private = file->f_path.dentry->d_inode->i_private;
|
||||
seq->private = file_inode(file)->i_private;
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
@ -46,16 +46,12 @@ static struct proc_dir_entry *proc_ppc64_scan_log_dump; /* The proc file */
|
||||
static ssize_t scanlog_read(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct inode * inode = file->f_path.dentry->d_inode;
|
||||
struct proc_dir_entry *dp;
|
||||
unsigned int *data;
|
||||
struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
unsigned int *data = (unsigned int *)dp->data;
|
||||
int status;
|
||||
unsigned long len, off;
|
||||
unsigned int wait_time;
|
||||
|
||||
dp = PDE(inode);
|
||||
data = (unsigned int *)dp->data;
|
||||
|
||||
if (count > RTAS_DATA_BUF_SIZE)
|
||||
count = RTAS_DATA_BUF_SIZE;
|
||||
|
||||
|
@ -54,7 +54,7 @@ static ssize_t dbfs_read(struct file *file, char __user *buf,
|
||||
if (*ppos != 0)
|
||||
return 0;
|
||||
|
||||
df = file->f_path.dentry->d_inode->i_private;
|
||||
df = file_inode(file)->i_private;
|
||||
mutex_lock(&df->lock);
|
||||
if (!df->data) {
|
||||
data = hypfs_dbfs_data_alloc(df);
|
||||
|
@ -119,7 +119,7 @@ static void hypfs_evict_inode(struct inode *inode)
|
||||
|
||||
static int hypfs_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
char *data = filp->f_path.dentry->d_inode->i_private;
|
||||
char *data = file_inode(filp)->i_private;
|
||||
struct hypfs_sb_info *fs_info;
|
||||
|
||||
if (filp->f_mode & FMODE_WRITE) {
|
||||
|
@ -180,10 +180,7 @@ extern unsigned long elf_hwcap;
|
||||
extern char elf_platform[];
|
||||
#define ELF_PLATFORM (elf_platform)
|
||||
|
||||
#ifndef CONFIG_64BIT
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
#else /* CONFIG_64BIT */
|
||||
#ifdef CONFIG_64BIT
|
||||
#define SET_PERSONALITY(ex) \
|
||||
do { \
|
||||
if (personality(current->personality) != PER_LINUX32) \
|
||||
|
@ -611,7 +611,7 @@ debug_open(struct inode *inode, struct file *file)
|
||||
debug_info_t *debug_info, *debug_info_snapshot;
|
||||
|
||||
mutex_lock(&debug_mutex);
|
||||
debug_info = file->f_path.dentry->d_inode->i_private;
|
||||
debug_info = file_inode(file)->i_private;
|
||||
/* find debug view */
|
||||
for (i = 0; i < DEBUG_MAX_VIEWS; i++) {
|
||||
if (!debug_info->views[i])
|
||||
|
@ -99,7 +99,7 @@ static ssize_t pci_perf_seq_write(struct file *file, const char __user *ubuf,
|
||||
static int pci_perf_seq_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
return single_open(filp, pci_perf_show,
|
||||
filp->f_path.dentry->d_inode->i_private);
|
||||
file_inode(filp)->i_private);
|
||||
}
|
||||
|
||||
static const struct file_operations debugfs_pci_perf_fops = {
|
||||
@ -121,7 +121,7 @@ static int pci_debug_show(struct seq_file *m, void *v)
|
||||
static int pci_debug_seq_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
return single_open(filp, pci_debug_show,
|
||||
filp->f_path.dentry->d_inode->i_private);
|
||||
file_inode(filp)->i_private);
|
||||
}
|
||||
|
||||
static const struct file_operations debugfs_pci_debug_fops = {
|
||||
|
@ -52,11 +52,6 @@ typedef elf_fpreg_t elf_fpregset_t;
|
||||
#define ELF_DATA ELFDATA2LSB
|
||||
#define ELF_ARCH EM_SCORE7
|
||||
|
||||
#define SET_PERSONALITY(ex) \
|
||||
do { \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK))); \
|
||||
} while (0)
|
||||
|
||||
struct task_struct;
|
||||
struct pt_regs;
|
||||
|
||||
|
@ -140,7 +140,7 @@ static int alignment_proc_open(struct inode *inode, struct file *file)
|
||||
static ssize_t alignment_proc_write(struct file *file,
|
||||
const char __user *buffer, size_t count, loff_t *pos)
|
||||
{
|
||||
int *data = PDE(file->f_path.dentry->d_inode)->data;
|
||||
int *data = PDE(file_inode(file))->data;
|
||||
char mode;
|
||||
|
||||
if (count > 0) {
|
||||
|
@ -128,7 +128,4 @@ typedef struct {
|
||||
|
||||
#define ELF_PLATFORM (NULL)
|
||||
|
||||
#define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
|
||||
#endif /* !(__ASMSPARC_ELF_H) */
|
||||
|
@ -271,7 +271,7 @@ static int load_aout_binary(struct linux_binprm *bprm)
|
||||
if ((N_MAGIC(ex) != ZMAGIC && N_MAGIC(ex) != OMAGIC &&
|
||||
N_MAGIC(ex) != QMAGIC && N_MAGIC(ex) != NMAGIC) ||
|
||||
N_TRSIZE(ex) || N_DRSIZE(ex) ||
|
||||
i_size_read(bprm->file->f_path.dentry->d_inode) <
|
||||
i_size_read(file_inode(bprm->file)) <
|
||||
ex.a_text+ex.a_data+N_SYMSIZE(ex)+N_TXTOFF(ex)) {
|
||||
return -ENOEXEC;
|
||||
}
|
||||
@ -425,12 +425,10 @@ beyond_if:
|
||||
|
||||
static int load_aout_library(struct file *file)
|
||||
{
|
||||
struct inode *inode;
|
||||
unsigned long bss, start_addr, len, error;
|
||||
int retval;
|
||||
struct exec ex;
|
||||
|
||||
inode = file->f_path.dentry->d_inode;
|
||||
|
||||
retval = -ENOEXEC;
|
||||
error = kernel_read(file, 0, (char *) &ex, sizeof(ex));
|
||||
@ -440,7 +438,7 @@ static int load_aout_library(struct file *file)
|
||||
/* We come in here for the regular a.out style of shared libraries */
|
||||
if ((N_MAGIC(ex) != ZMAGIC && N_MAGIC(ex) != QMAGIC) || N_TRSIZE(ex) ||
|
||||
N_DRSIZE(ex) || ((ex.a_entry & 0xfff) && N_MAGIC(ex) == ZMAGIC) ||
|
||||
i_size_read(inode) <
|
||||
i_size_read(file_inode(file)) <
|
||||
ex.a_text+ex.a_data+N_SYMSIZE(ex)+N_TXTOFF(ex)) {
|
||||
goto out;
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ static ssize_t cpuid_read(struct file *file, char __user *buf,
|
||||
{
|
||||
char __user *tmp = buf;
|
||||
struct cpuid_regs cmd;
|
||||
int cpu = iminor(file->f_path.dentry->d_inode);
|
||||
int cpu = iminor(file_inode(file));
|
||||
u64 pos = *ppos;
|
||||
ssize_t bytes = 0;
|
||||
int err = 0;
|
||||
@ -116,7 +116,7 @@ static int cpuid_open(struct inode *inode, struct file *file)
|
||||
unsigned int cpu;
|
||||
struct cpuinfo_x86 *c;
|
||||
|
||||
cpu = iminor(file->f_path.dentry->d_inode);
|
||||
cpu = iminor(file_inode(file));
|
||||
if (cpu >= nr_cpu_ids || !cpu_online(cpu))
|
||||
return -ENXIO; /* No such CPU */
|
||||
|
||||
|
@ -302,7 +302,8 @@ static int handle_remove(const char *nodename, struct device *dev)
|
||||
|
||||
if (dentry->d_inode) {
|
||||
struct kstat stat;
|
||||
err = vfs_getattr(parent.mnt, dentry, &stat);
|
||||
struct path p = {.mnt = parent.mnt, .dentry = dentry};
|
||||
err = vfs_getattr(&p, &stat);
|
||||
if (!err && dev_mynode(dev, dentry->d_inode, &stat)) {
|
||||
struct iattr newattrs;
|
||||
/*
|
||||
|
@ -279,7 +279,7 @@ MODULE_PARM_DESC(path, "customized firmware image search path with a higher prio
|
||||
static noinline_for_stack long fw_file_size(struct file *file)
|
||||
{
|
||||
struct kstat st;
|
||||
if (vfs_getattr(file->f_path.mnt, file->f_path.dentry, &st))
|
||||
if (vfs_getattr(&file->f_path, &st))
|
||||
return -1;
|
||||
if (!S_ISREG(st.mode))
|
||||
return -1;
|
||||
|
@ -6547,7 +6547,7 @@ static ssize_t dac960_user_command_proc_write(struct file *file,
|
||||
const char __user *Buffer,
|
||||
size_t Count, loff_t *pos)
|
||||
{
|
||||
DAC960_Controller_T *Controller = (DAC960_Controller_T *) PDE(file->f_path.dentry->d_inode)->data;
|
||||
DAC960_Controller_T *Controller = (DAC960_Controller_T *) PDE(file_inode(file))->data;
|
||||
unsigned char CommandBuffer[80];
|
||||
int Length;
|
||||
if (Count > sizeof(CommandBuffer)-1) return -EINVAL;
|
||||
|
@ -1139,7 +1139,7 @@ loop_get_status(struct loop_device *lo, struct loop_info64 *info)
|
||||
|
||||
if (lo->lo_state != Lo_bound)
|
||||
return -ENXIO;
|
||||
error = vfs_getattr(file->f_path.mnt, file->f_path.dentry, &stat);
|
||||
error = vfs_getattr(&file->f_path, &stat);
|
||||
if (error)
|
||||
return error;
|
||||
memset(info, 0, sizeof(*info));
|
||||
|
@ -625,7 +625,7 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd,
|
||||
return -EBUSY;
|
||||
file = fget(arg);
|
||||
if (file) {
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
if (S_ISSOCK(inode->i_mode)) {
|
||||
nbd->file = file;
|
||||
nbd->sock = SOCKET_I(inode);
|
||||
|
@ -181,7 +181,7 @@ static int dsp56k_upload(u_char __user *bin, int len)
|
||||
static ssize_t dsp56k_read(struct file *file, char __user *buf, size_t count,
|
||||
loff_t *ppos)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
int dev = iminor(inode) & 0x0f;
|
||||
|
||||
switch(dev)
|
||||
@ -244,7 +244,7 @@ static ssize_t dsp56k_read(struct file *file, char __user *buf, size_t count,
|
||||
static ssize_t dsp56k_write(struct file *file, const char __user *buf, size_t count,
|
||||
loff_t *ppos)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
int dev = iminor(inode) & 0x0f;
|
||||
|
||||
switch(dev)
|
||||
@ -306,7 +306,7 @@ static ssize_t dsp56k_write(struct file *file, const char __user *buf, size_t co
|
||||
static long dsp56k_ioctl(struct file *file, unsigned int cmd,
|
||||
unsigned long arg)
|
||||
{
|
||||
int dev = iminor(file->f_path.dentry->d_inode) & 0x0f;
|
||||
int dev = iminor(file_inode(file)) & 0x0f;
|
||||
void __user *argp = (void __user *)arg;
|
||||
|
||||
switch(dev)
|
||||
@ -408,7 +408,7 @@ static long dsp56k_ioctl(struct file *file, unsigned int cmd,
|
||||
#if 0
|
||||
static unsigned int dsp56k_poll(struct file *file, poll_table *wait)
|
||||
{
|
||||
int dev = iminor(file->f_path.dentry->d_inode) & 0x0f;
|
||||
int dev = iminor(file_inode(file)) & 0x0f;
|
||||
|
||||
switch(dev)
|
||||
{
|
||||
|
@ -125,7 +125,7 @@ static char dtlk_write_tts(char);
|
||||
static ssize_t dtlk_read(struct file *file, char __user *buf,
|
||||
size_t count, loff_t * ppos)
|
||||
{
|
||||
unsigned int minor = iminor(file->f_path.dentry->d_inode);
|
||||
unsigned int minor = iminor(file_inode(file));
|
||||
char ch;
|
||||
int i = 0, retries;
|
||||
|
||||
@ -177,7 +177,7 @@ static ssize_t dtlk_write(struct file *file, const char __user *buf,
|
||||
}
|
||||
#endif
|
||||
|
||||
if (iminor(file->f_path.dentry->d_inode) != DTLK_MINOR)
|
||||
if (iminor(file_inode(file)) != DTLK_MINOR)
|
||||
return -EINVAL;
|
||||
|
||||
while (1) {
|
||||
|
@ -294,7 +294,7 @@ static int lp_wait_ready(int minor, int nonblock)
|
||||
static ssize_t lp_write(struct file * file, const char __user * buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
unsigned int minor = iminor(file->f_path.dentry->d_inode);
|
||||
unsigned int minor = iminor(file_inode(file));
|
||||
struct parport *port = lp_table[minor].dev->port;
|
||||
char *kbuf = lp_table[minor].lp_buffer;
|
||||
ssize_t retv = 0;
|
||||
@ -413,7 +413,7 @@ static ssize_t lp_read(struct file * file, char __user * buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
DEFINE_WAIT(wait);
|
||||
unsigned int minor=iminor(file->f_path.dentry->d_inode);
|
||||
unsigned int minor=iminor(file_inode(file));
|
||||
struct parport *port = lp_table[minor].dev->port;
|
||||
ssize_t retval = 0;
|
||||
char *kbuf = lp_table[minor].lp_buffer;
|
||||
@ -679,7 +679,7 @@ static long lp_ioctl(struct file *file, unsigned int cmd,
|
||||
struct timeval par_timeout;
|
||||
int ret;
|
||||
|
||||
minor = iminor(file->f_path.dentry->d_inode);
|
||||
minor = iminor(file_inode(file));
|
||||
mutex_lock(&lp_mutex);
|
||||
switch (cmd) {
|
||||
case LPSETTIMEOUT:
|
||||
@ -707,7 +707,7 @@ static long lp_compat_ioctl(struct file *file, unsigned int cmd,
|
||||
struct timeval par_timeout;
|
||||
int ret;
|
||||
|
||||
minor = iminor(file->f_path.dentry->d_inode);
|
||||
minor = iminor(file_inode(file));
|
||||
mutex_lock(&lp_mutex);
|
||||
switch (cmd) {
|
||||
case LPSETTIMEOUT:
|
||||
|
@ -708,7 +708,7 @@ static loff_t memory_lseek(struct file *file, loff_t offset, int orig)
|
||||
{
|
||||
loff_t ret;
|
||||
|
||||
mutex_lock(&file->f_path.dentry->d_inode->i_mutex);
|
||||
mutex_lock(&file_inode(file)->i_mutex);
|
||||
switch (orig) {
|
||||
case SEEK_CUR:
|
||||
offset += file->f_pos;
|
||||
@ -725,7 +725,7 @@ static loff_t memory_lseek(struct file *file, loff_t offset, int orig)
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
}
|
||||
mutex_unlock(&file->f_path.dentry->d_inode->i_mutex);
|
||||
mutex_unlock(&file_inode(file)->i_mutex);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ void nsc_gpio_dump(struct nsc_gpio_ops *amp, unsigned index)
|
||||
ssize_t nsc_gpio_write(struct file *file, const char __user *data,
|
||||
size_t len, loff_t *ppos)
|
||||
{
|
||||
unsigned m = iminor(file->f_path.dentry->d_inode);
|
||||
unsigned m = iminor(file_inode(file));
|
||||
struct nsc_gpio_ops *amp = file->private_data;
|
||||
struct device *dev = amp->dev;
|
||||
size_t i;
|
||||
@ -104,7 +104,7 @@ ssize_t nsc_gpio_write(struct file *file, const char __user *data,
|
||||
ssize_t nsc_gpio_read(struct file *file, char __user * buf,
|
||||
size_t len, loff_t * ppos)
|
||||
{
|
||||
unsigned m = iminor(file->f_path.dentry->d_inode);
|
||||
unsigned m = iminor(file_inode(file));
|
||||
int value;
|
||||
struct nsc_gpio_ops *amp = file->private_data;
|
||||
|
||||
|
@ -1400,7 +1400,7 @@ static long cmm_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct cm4000_dev *dev = filp->private_data;
|
||||
unsigned int iobase = dev->p_dev->resource[0]->start;
|
||||
struct inode *inode = filp->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(filp);
|
||||
struct pcmcia_device *link;
|
||||
int size;
|
||||
int rc;
|
||||
|
@ -107,7 +107,7 @@ static inline void pp_enable_irq (struct pp_struct *pp)
|
||||
static ssize_t pp_read (struct file * file, char __user * buf, size_t count,
|
||||
loff_t * ppos)
|
||||
{
|
||||
unsigned int minor = iminor(file->f_path.dentry->d_inode);
|
||||
unsigned int minor = iminor(file_inode(file));
|
||||
struct pp_struct *pp = file->private_data;
|
||||
char * kbuffer;
|
||||
ssize_t bytes_read = 0;
|
||||
@ -189,7 +189,7 @@ static ssize_t pp_read (struct file * file, char __user * buf, size_t count,
|
||||
static ssize_t pp_write (struct file * file, const char __user * buf,
|
||||
size_t count, loff_t * ppos)
|
||||
{
|
||||
unsigned int minor = iminor(file->f_path.dentry->d_inode);
|
||||
unsigned int minor = iminor(file_inode(file));
|
||||
struct pp_struct *pp = file->private_data;
|
||||
char * kbuffer;
|
||||
ssize_t bytes_written = 0;
|
||||
@ -324,7 +324,7 @@ static enum ieee1284_phase init_phase (int mode)
|
||||
|
||||
static int pp_do_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
unsigned int minor = iminor(file->f_path.dentry->d_inode);
|
||||
unsigned int minor = iminor(file_inode(file));
|
||||
struct pp_struct *pp = file->private_data;
|
||||
struct parport * port;
|
||||
void __user *argp = (void __user *)arg;
|
||||
|
@ -312,7 +312,7 @@ static int ps3flash_flush(struct file *file, fl_owner_t id)
|
||||
|
||||
static int ps3flash_fsync(struct file *file, loff_t start, loff_t end, int datasync)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
int err;
|
||||
mutex_lock(&inode->i_mutex);
|
||||
err = ps3flash_writeback(ps3flash_dev);
|
||||
|
@ -80,7 +80,7 @@ static int raw_open(struct inode *inode, struct file *filp)
|
||||
filp->f_flags |= O_DIRECT;
|
||||
filp->f_mapping = bdev->bd_inode->i_mapping;
|
||||
if (++raw_devices[minor].inuse == 1)
|
||||
filp->f_path.dentry->d_inode->i_mapping =
|
||||
file_inode(filp)->i_mapping =
|
||||
bdev->bd_inode->i_mapping;
|
||||
filp->private_data = bdev;
|
||||
mutex_unlock(&raw_mutex);
|
||||
|
@ -938,7 +938,7 @@ static ssize_t sonypi_misc_read(struct file *file, char __user *buf,
|
||||
}
|
||||
|
||||
if (ret > 0) {
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
inode->i_atime = current_fs_time(inode->i_sb);
|
||||
}
|
||||
|
||||
|
@ -164,7 +164,7 @@ static ssize_t tanbac_tb0219_read(struct file *file, char __user *buf, size_t le
|
||||
unsigned int minor;
|
||||
char value;
|
||||
|
||||
minor = iminor(file->f_path.dentry->d_inode);
|
||||
minor = iminor(file_inode(file));
|
||||
switch (minor) {
|
||||
case 0:
|
||||
value = get_led();
|
||||
@ -200,7 +200,7 @@ static ssize_t tanbac_tb0219_write(struct file *file, const char __user *data,
|
||||
int retval = 0;
|
||||
char c;
|
||||
|
||||
minor = iminor(file->f_path.dentry->d_inode);
|
||||
minor = iminor(file_inode(file));
|
||||
switch (minor) {
|
||||
case 0:
|
||||
type = TYPE_LED;
|
||||
|
@ -202,7 +202,7 @@ static int psb_gtt_attach_pages(struct gtt_range *gt)
|
||||
WARN_ON(gt->pages);
|
||||
|
||||
/* This is the shared memory object that backs the GEM resource */
|
||||
inode = gt->gem.filp->f_path.dentry->d_inode;
|
||||
inode = file_inode(gt->gem.filp);
|
||||
mapping = inode->i_mapping;
|
||||
|
||||
gt->pages = kmalloc(pages * sizeof(struct page *), GFP_KERNEL);
|
||||
|
@ -1618,7 +1618,7 @@ i915_gem_object_truncate(struct drm_i915_gem_object *obj)
|
||||
* To do this we must instruct the shmfs to drop all of its
|
||||
* backing pages, *now*.
|
||||
*/
|
||||
inode = obj->base.filp->f_path.dentry->d_inode;
|
||||
inode = file_inode(obj->base.filp);
|
||||
shmem_truncate_range(inode, 0, (loff_t)-1);
|
||||
|
||||
obj->madv = __I915_MADV_PURGED;
|
||||
@ -1783,7 +1783,7 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
|
||||
*
|
||||
* Fail silently without starting the shrinker
|
||||
*/
|
||||
mapping = obj->base.filp->f_path.dentry->d_inode->i_mapping;
|
||||
mapping = file_inode(obj->base.filp)->i_mapping;
|
||||
gfp = mapping_gfp_mask(mapping);
|
||||
gfp |= __GFP_NORETRY | __GFP_NOWARN | __GFP_NO_KSWAPD;
|
||||
gfp &= ~(__GFP_IO | __GFP_WAIT);
|
||||
@ -3747,7 +3747,7 @@ struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
|
||||
mask |= __GFP_DMA32;
|
||||
}
|
||||
|
||||
mapping = obj->base.filp->f_path.dentry->d_inode->i_mapping;
|
||||
mapping = file_inode(obj->base.filp)->i_mapping;
|
||||
mapping_set_gfp_mask(mapping, mask);
|
||||
|
||||
i915_gem_object_init(obj, &i915_gem_object_ops);
|
||||
@ -4232,7 +4232,7 @@ void i915_gem_free_all_phys_object(struct drm_device *dev)
|
||||
void i915_gem_detach_phys_object(struct drm_device *dev,
|
||||
struct drm_i915_gem_object *obj)
|
||||
{
|
||||
struct address_space *mapping = obj->base.filp->f_path.dentry->d_inode->i_mapping;
|
||||
struct address_space *mapping = file_inode(obj->base.filp)->i_mapping;
|
||||
char *vaddr;
|
||||
int i;
|
||||
int page_count;
|
||||
@ -4268,7 +4268,7 @@ i915_gem_attach_phys_object(struct drm_device *dev,
|
||||
int id,
|
||||
int align)
|
||||
{
|
||||
struct address_space *mapping = obj->base.filp->f_path.dentry->d_inode->i_mapping;
|
||||
struct address_space *mapping = file_inode(obj->base.filp)->i_mapping;
|
||||
drm_i915_private_t *dev_priv = dev->dev_private;
|
||||
int ret = 0;
|
||||
int page_count;
|
||||
|
@ -40,7 +40,7 @@ struct page **_drm_gem_get_pages(struct drm_gem_object *obj, gfp_t gfpmask)
|
||||
int i, npages;
|
||||
|
||||
/* This is the shared memory object that backs the GEM resource */
|
||||
inode = obj->filp->f_path.dentry->d_inode;
|
||||
inode = file_inode(obj->filp);
|
||||
mapping = inode->i_mapping;
|
||||
|
||||
npages = obj->size >> PAGE_SHIFT;
|
||||
|
@ -296,7 +296,7 @@ int ttm_tt_swapin(struct ttm_tt *ttm)
|
||||
swap_storage = ttm->swap_storage;
|
||||
BUG_ON(swap_storage == NULL);
|
||||
|
||||
swap_space = swap_storage->f_path.dentry->d_inode->i_mapping;
|
||||
swap_space = file_inode(swap_storage)->i_mapping;
|
||||
|
||||
for (i = 0; i < ttm->num_pages; ++i) {
|
||||
from_page = shmem_read_mapping_page(swap_space, i);
|
||||
@ -345,7 +345,7 @@ int ttm_tt_swapout(struct ttm_tt *ttm, struct file *persistent_swap_storage)
|
||||
} else
|
||||
swap_storage = persistent_swap_storage;
|
||||
|
||||
swap_space = swap_storage->f_path.dentry->d_inode->i_mapping;
|
||||
swap_space = file_inode(swap_storage)->i_mapping;
|
||||
|
||||
for (i = 0; i < ttm->num_pages; ++i) {
|
||||
from_page = ttm->pages[i];
|
||||
|
@ -137,7 +137,7 @@ static int udl_gem_get_pages(struct udl_gem_object *obj, gfp_t gfpmask)
|
||||
if (obj->pages == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
inode = obj->base.filp->f_path.dentry->d_inode;
|
||||
inode = file_inode(obj->base.filp);
|
||||
mapping = inode->i_mapping;
|
||||
gfpmask |= mapping_gfp_mask(mapping);
|
||||
|
||||
|
@ -378,7 +378,7 @@ EXPORT_SYMBOL_GPL(roccat_disconnect);
|
||||
|
||||
static long roccat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
struct roccat_device *device;
|
||||
unsigned int minor = iminor(inode);
|
||||
long retval = 0;
|
||||
|
@ -108,7 +108,7 @@ out:
|
||||
* This function is to be called with the minors_lock mutex held */
|
||||
static ssize_t hidraw_send_report(struct file *file, const char __user *buffer, size_t count, unsigned char report_type)
|
||||
{
|
||||
unsigned int minor = iminor(file->f_path.dentry->d_inode);
|
||||
unsigned int minor = iminor(file_inode(file));
|
||||
struct hid_device *dev;
|
||||
__u8 *buf;
|
||||
int ret = 0;
|
||||
@ -176,7 +176,7 @@ static ssize_t hidraw_write(struct file *file, const char __user *buffer, size_t
|
||||
* mutex held. */
|
||||
static ssize_t hidraw_get_report(struct file *file, char __user *buffer, size_t count, unsigned char report_type)
|
||||
{
|
||||
unsigned int minor = iminor(file->f_path.dentry->d_inode);
|
||||
unsigned int minor = iminor(file_inode(file));
|
||||
struct hid_device *dev;
|
||||
__u8 *buf;
|
||||
int ret = 0, len;
|
||||
@ -340,7 +340,7 @@ unlock:
|
||||
static long hidraw_ioctl(struct file *file, unsigned int cmd,
|
||||
unsigned long arg)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
unsigned int minor = iminor(inode);
|
||||
long ret = 0;
|
||||
struct hidraw *dev;
|
||||
|
@ -148,7 +148,7 @@ static ssize_t i2cdev_read(struct file *file, char __user *buf, size_t count,
|
||||
return -ENOMEM;
|
||||
|
||||
pr_debug("i2c-dev: i2c-%d reading %zu bytes.\n",
|
||||
iminor(file->f_path.dentry->d_inode), count);
|
||||
iminor(file_inode(file)), count);
|
||||
|
||||
ret = i2c_master_recv(client, tmp, count);
|
||||
if (ret >= 0)
|
||||
@ -172,7 +172,7 @@ static ssize_t i2cdev_write(struct file *file, const char __user *buf,
|
||||
return PTR_ERR(tmp);
|
||||
|
||||
pr_debug("i2c-dev: i2c-%d writing %zu bytes.\n",
|
||||
iminor(file->f_path.dentry->d_inode), count);
|
||||
iminor(file_inode(file)), count);
|
||||
|
||||
ret = i2c_master_send(client, tmp, count);
|
||||
kfree(tmp);
|
||||
|
@ -333,7 +333,7 @@ static int ide_settings_proc_open(struct inode *inode, struct file *file)
|
||||
static ssize_t ide_settings_proc_write(struct file *file, const char __user *buffer,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
ide_drive_t *drive = (ide_drive_t *) PDE(file->f_path.dentry->d_inode)->data;
|
||||
ide_drive_t *drive = (ide_drive_t *) PDE(file_inode(file))->data;
|
||||
char name[MAX_LEN + 1];
|
||||
int for_real = 0, mul_factor, div_factor;
|
||||
unsigned long n;
|
||||
@ -558,7 +558,7 @@ static int ide_replace_subdriver(ide_drive_t *drive, const char *driver)
|
||||
static ssize_t ide_driver_proc_write(struct file *file, const char __user *buffer,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
ide_drive_t *drive = (ide_drive_t *) PDE(file->f_path.dentry->d_inode)->data;
|
||||
ide_drive_t *drive = (ide_drive_t *) PDE(file_inode(file))->data;
|
||||
char name[32];
|
||||
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
|
@ -731,7 +731,7 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file,
|
||||
goto err_tree_mutex_unlock;
|
||||
}
|
||||
|
||||
inode = f.file->f_path.dentry->d_inode;
|
||||
inode = file_inode(f.file);
|
||||
xrcd = find_xrcd(file->device, inode);
|
||||
if (!xrcd && !(cmd.oflags & O_CREAT)) {
|
||||
/* no file descriptor. Need CREATE flag */
|
||||
|
@ -1864,9 +1864,9 @@ static int ipath_assign_port(struct file *fp,
|
||||
goto done_chk_sdma;
|
||||
}
|
||||
|
||||
i_minor = iminor(fp->f_path.dentry->d_inode) - IPATH_USER_MINOR_BASE;
|
||||
i_minor = iminor(file_inode(fp)) - IPATH_USER_MINOR_BASE;
|
||||
ipath_cdbg(VERBOSE, "open on dev %lx (minor %d)\n",
|
||||
(long)fp->f_path.dentry->d_inode->i_rdev, i_minor);
|
||||
(long)file_inode(fp)->i_rdev, i_minor);
|
||||
|
||||
if (i_minor)
|
||||
ret = find_free_port(i_minor - 1, fp, uinfo);
|
||||
|
@ -113,7 +113,7 @@ static ssize_t atomic_counters_read(struct file *file, char __user *buf,
|
||||
struct infinipath_counters counters;
|
||||
struct ipath_devdata *dd;
|
||||
|
||||
dd = file->f_path.dentry->d_inode->i_private;
|
||||
dd = file_inode(file)->i_private;
|
||||
dd->ipath_f_read_counters(dd, &counters);
|
||||
|
||||
return simple_read_from_buffer(buf, count, ppos, &counters,
|
||||
@ -154,7 +154,7 @@ static ssize_t flash_read(struct file *file, char __user *buf,
|
||||
goto bail;
|
||||
}
|
||||
|
||||
dd = file->f_path.dentry->d_inode->i_private;
|
||||
dd = file_inode(file)->i_private;
|
||||
if (ipath_eeprom_read(dd, pos, tmp, count)) {
|
||||
ipath_dev_err(dd, "failed to read from flash\n");
|
||||
ret = -ENXIO;
|
||||
@ -207,7 +207,7 @@ static ssize_t flash_write(struct file *file, const char __user *buf,
|
||||
goto bail_tmp;
|
||||
}
|
||||
|
||||
dd = file->f_path.dentry->d_inode->i_private;
|
||||
dd = file_inode(file)->i_private;
|
||||
if (ipath_eeprom_write(dd, pos, tmp, count)) {
|
||||
ret = -ENXIO;
|
||||
ipath_dev_err(dd, "failed to write to flash\n");
|
||||
|
@ -1524,7 +1524,7 @@ static int qib_assign_ctxt(struct file *fp, const struct qib_user_info *uinfo)
|
||||
}
|
||||
}
|
||||
|
||||
i_minor = iminor(fp->f_dentry->d_inode) - QIB_USER_MINOR_BASE;
|
||||
i_minor = iminor(file_inode(fp)) - QIB_USER_MINOR_BASE;
|
||||
if (i_minor)
|
||||
ret = find_free_ctxt(i_minor - 1, fp, uinfo);
|
||||
else
|
||||
|
@ -45,7 +45,7 @@
|
||||
|
||||
static struct super_block *qib_super;
|
||||
|
||||
#define private2dd(file) ((file)->f_dentry->d_inode->i_private)
|
||||
#define private2dd(file) (file_inode(file)->i_private)
|
||||
|
||||
static int qibfs_mknod(struct inode *dir, struct dentry *dentry,
|
||||
umode_t mode, const struct file_operations *fops,
|
||||
@ -171,7 +171,7 @@ static const struct file_operations cntr_ops[] = {
|
||||
};
|
||||
|
||||
/*
|
||||
* Could use file->f_dentry->d_inode->i_ino to figure out which file,
|
||||
* Could use file_inode(file)->i_ino to figure out which file,
|
||||
* instead of separate routine for each, but for now, this works...
|
||||
*/
|
||||
|
||||
|
@ -968,7 +968,6 @@ static ssize_t smmu_debugfs_stats_write(struct file *file,
|
||||
{
|
||||
struct smmu_debugfs_info *info;
|
||||
struct smmu_device *smmu;
|
||||
struct dentry *dent;
|
||||
int i;
|
||||
enum {
|
||||
_OFF = 0,
|
||||
@ -996,8 +995,7 @@ static ssize_t smmu_debugfs_stats_write(struct file *file,
|
||||
if (i == ARRAY_SIZE(command))
|
||||
return -EINVAL;
|
||||
|
||||
dent = file->f_dentry;
|
||||
info = dent->d_inode->i_private;
|
||||
info = file_inode(file)->i_private;
|
||||
smmu = info->smmu;
|
||||
|
||||
offs = SMMU_CACHE_CONFIG(info->cache);
|
||||
@ -1032,15 +1030,11 @@ static ssize_t smmu_debugfs_stats_write(struct file *file,
|
||||
|
||||
static int smmu_debugfs_stats_show(struct seq_file *s, void *v)
|
||||
{
|
||||
struct smmu_debugfs_info *info;
|
||||
struct smmu_device *smmu;
|
||||
struct dentry *dent;
|
||||
struct smmu_debugfs_info *info = s->private;
|
||||
struct smmu_device *smmu = info->smmu;
|
||||
int i;
|
||||
const char * const stats[] = { "hit", "miss", };
|
||||
|
||||
dent = d_find_alias(s->private);
|
||||
info = dent->d_inode->i_private;
|
||||
smmu = info->smmu;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(stats); i++) {
|
||||
u32 val;
|
||||
@ -1054,14 +1048,12 @@ static int smmu_debugfs_stats_show(struct seq_file *s, void *v)
|
||||
stats[i], val, offs);
|
||||
}
|
||||
seq_printf(s, "\n");
|
||||
dput(dent);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int smmu_debugfs_stats_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, smmu_debugfs_stats_show, inode);
|
||||
return single_open(file, smmu_debugfs_stats_show, inode->i_private);
|
||||
}
|
||||
|
||||
static const struct file_operations smmu_debugfs_stats_fops = {
|
||||
|
@ -145,7 +145,7 @@ void remove_divas_proc(void)
|
||||
static ssize_t grp_opt_proc_write(struct file *file, const char __user *buffer,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
diva_os_xdi_adapter_t *a = PDE(file->f_path.dentry->d_inode)->data;
|
||||
diva_os_xdi_adapter_t *a = PDE(file_inode(file))->data;
|
||||
PISDN_ADAPTER IoAdapter = IoAdapters[a->controller - 1];
|
||||
|
||||
if ((count == 1) || (count == 2)) {
|
||||
@ -172,7 +172,7 @@ static ssize_t grp_opt_proc_write(struct file *file, const char __user *buffer,
|
||||
static ssize_t d_l1_down_proc_write(struct file *file, const char __user *buffer,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
diva_os_xdi_adapter_t *a = PDE(file->f_path.dentry->d_inode)->data;
|
||||
diva_os_xdi_adapter_t *a = PDE(file_inode(file))->data;
|
||||
PISDN_ADAPTER IoAdapter = IoAdapters[a->controller - 1];
|
||||
|
||||
if ((count == 1) || (count == 2)) {
|
||||
@ -251,7 +251,7 @@ static const struct file_operations grp_opt_proc_fops = {
|
||||
static ssize_t info_proc_write(struct file *file, const char __user *buffer,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
diva_os_xdi_adapter_t *a = PDE(file->f_path.dentry->d_inode)->data;
|
||||
diva_os_xdi_adapter_t *a = PDE(file_inode(file))->data;
|
||||
PISDN_ADAPTER IoAdapter = IoAdapters[a->controller - 1];
|
||||
char c[4];
|
||||
|
||||
|
@ -173,7 +173,7 @@ hysdn_log_read(struct file *file, char __user *buf, size_t count, loff_t *off)
|
||||
{
|
||||
struct log_data *inf;
|
||||
int len;
|
||||
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *pde = PDE(file_inode(file));
|
||||
struct procdata *pd = NULL;
|
||||
hysdn_card *card;
|
||||
|
||||
@ -319,7 +319,7 @@ static unsigned int
|
||||
hysdn_log_poll(struct file *file, poll_table *wait)
|
||||
{
|
||||
unsigned int mask = 0;
|
||||
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *pde = PDE(file_inode(file));
|
||||
hysdn_card *card;
|
||||
struct procdata *pd = NULL;
|
||||
|
||||
|
@ -1058,7 +1058,7 @@ isdn_info_update(void)
|
||||
static ssize_t
|
||||
isdn_read(struct file *file, char __user *buf, size_t count, loff_t *off)
|
||||
{
|
||||
uint minor = iminor(file->f_path.dentry->d_inode);
|
||||
uint minor = iminor(file_inode(file));
|
||||
int len = 0;
|
||||
int drvidx;
|
||||
int chidx;
|
||||
@ -1165,7 +1165,7 @@ out:
|
||||
static ssize_t
|
||||
isdn_write(struct file *file, const char __user *buf, size_t count, loff_t *off)
|
||||
{
|
||||
uint minor = iminor(file->f_path.dentry->d_inode);
|
||||
uint minor = iminor(file_inode(file));
|
||||
int drvidx;
|
||||
int chidx;
|
||||
int retval;
|
||||
@ -1228,7 +1228,7 @@ static unsigned int
|
||||
isdn_poll(struct file *file, poll_table *wait)
|
||||
{
|
||||
unsigned int mask = 0;
|
||||
unsigned int minor = iminor(file->f_path.dentry->d_inode);
|
||||
unsigned int minor = iminor(file_inode(file));
|
||||
int drvidx = isdn_minor2drv(minor - ISDN_MINOR_CTRL);
|
||||
|
||||
mutex_lock(&isdn_mutex);
|
||||
@ -1269,7 +1269,7 @@ out:
|
||||
static int
|
||||
isdn_ioctl(struct file *file, uint cmd, ulong arg)
|
||||
{
|
||||
uint minor = iminor(file->f_path.dentry->d_inode);
|
||||
uint minor = iminor(file_inode(file));
|
||||
isdn_ctrl c;
|
||||
int drvidx;
|
||||
int ret;
|
||||
|
@ -668,7 +668,7 @@ isdn_ppp_poll(struct file *file, poll_table *wait)
|
||||
|
||||
if (is->debug & 0x2)
|
||||
printk(KERN_DEBUG "isdn_ppp_poll: minor: %d\n",
|
||||
iminor(file->f_path.dentry->d_inode));
|
||||
iminor(file_inode(file)));
|
||||
|
||||
/* just registers wait_queue hook. This doesn't really wait. */
|
||||
poll_wait(file, &is->wq, wait);
|
||||
|
@ -337,7 +337,7 @@ static int read_page(struct file *file, unsigned long index,
|
||||
struct page *page)
|
||||
{
|
||||
int ret = 0;
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
struct buffer_head *bh;
|
||||
sector_t block;
|
||||
|
||||
@ -755,7 +755,7 @@ static void bitmap_file_unmap(struct bitmap_storage *store)
|
||||
free_buffers(sb_page);
|
||||
|
||||
if (file) {
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
invalidate_mapping_pages(inode->i_mapping, 0, -1);
|
||||
fput(file);
|
||||
}
|
||||
|
@ -137,7 +137,7 @@ static int zoran_open(struct inode *inode, struct file *file)
|
||||
static ssize_t zoran_write(struct file *file, const char __user *buffer,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct zoran *zr = PDE(file->f_path.dentry->d_inode)->data;
|
||||
struct zoran *zr = PDE(file_inode(file))->data;
|
||||
char *string, *sp;
|
||||
char *line, *ldelim, *varname, *svar, *tdelim;
|
||||
|
||||
|
@ -531,7 +531,7 @@ EXPORT_SYMBOL(lirc_dev_fop_close);
|
||||
|
||||
unsigned int lirc_dev_fop_poll(struct file *file, poll_table *wait)
|
||||
{
|
||||
struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)];
|
||||
struct irctl *ir = irctls[iminor(file_inode(file))];
|
||||
unsigned int ret;
|
||||
|
||||
if (!ir) {
|
||||
@ -565,7 +565,7 @@ long lirc_dev_fop_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
__u32 mode;
|
||||
int result = 0;
|
||||
struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)];
|
||||
struct irctl *ir = irctls[iminor(file_inode(file))];
|
||||
|
||||
if (!ir) {
|
||||
printk(KERN_ERR "lirc_dev: %s: no irctl found!\n", __func__);
|
||||
@ -650,7 +650,7 @@ ssize_t lirc_dev_fop_read(struct file *file,
|
||||
size_t length,
|
||||
loff_t *ppos)
|
||||
{
|
||||
struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)];
|
||||
struct irctl *ir = irctls[iminor(file_inode(file))];
|
||||
unsigned char *buf;
|
||||
int ret = 0, written = 0;
|
||||
DECLARE_WAITQUEUE(wait, current);
|
||||
@ -752,16 +752,7 @@ EXPORT_SYMBOL(lirc_dev_fop_read);
|
||||
|
||||
void *lirc_get_pdata(struct file *file)
|
||||
{
|
||||
void *data = NULL;
|
||||
|
||||
if (file && file->f_dentry && file->f_dentry->d_inode &&
|
||||
file->f_dentry->d_inode->i_rdev) {
|
||||
struct irctl *ir;
|
||||
ir = irctls[iminor(file->f_dentry->d_inode)];
|
||||
data = ir->d.data;
|
||||
}
|
||||
|
||||
return data;
|
||||
return irctls[iminor(file_inode(file))]->d.data;
|
||||
}
|
||||
EXPORT_SYMBOL(lirc_get_pdata);
|
||||
|
||||
@ -769,7 +760,7 @@ EXPORT_SYMBOL(lirc_get_pdata);
|
||||
ssize_t lirc_dev_fop_write(struct file *file, const char __user *buffer,
|
||||
size_t length, loff_t *ppos)
|
||||
{
|
||||
struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)];
|
||||
struct irctl *ir = irctls[iminor(file_inode(file))];
|
||||
|
||||
if (!ir) {
|
||||
printk(KERN_ERR "%s: called with invalid irctl\n", __func__);
|
||||
|
@ -222,7 +222,7 @@ static struct class video_class = {
|
||||
|
||||
struct video_device *video_devdata(struct file *file)
|
||||
{
|
||||
return video_device[iminor(file->f_path.dentry->d_inode)];
|
||||
return video_device[iminor(file_inode(file))];
|
||||
}
|
||||
EXPORT_SYMBOL(video_devdata);
|
||||
|
||||
|
@ -1408,40 +1408,32 @@ static void clear_memalloc(int memalloc)
|
||||
current->flags &= ~PF_MEMALLOC;
|
||||
}
|
||||
|
||||
static ssize_t read_file(struct nandsim *ns, struct file *file, void *buf, size_t count, loff_t *pos)
|
||||
static ssize_t read_file(struct nandsim *ns, struct file *file, void *buf, size_t count, loff_t pos)
|
||||
{
|
||||
mm_segment_t old_fs;
|
||||
ssize_t tx;
|
||||
int err, memalloc;
|
||||
|
||||
err = get_pages(ns, file, count, *pos);
|
||||
err = get_pages(ns, file, count, pos);
|
||||
if (err)
|
||||
return err;
|
||||
old_fs = get_fs();
|
||||
set_fs(get_ds());
|
||||
memalloc = set_memalloc();
|
||||
tx = vfs_read(file, (char __user *)buf, count, pos);
|
||||
tx = kernel_read(file, pos, buf, count);
|
||||
clear_memalloc(memalloc);
|
||||
set_fs(old_fs);
|
||||
put_pages(ns);
|
||||
return tx;
|
||||
}
|
||||
|
||||
static ssize_t write_file(struct nandsim *ns, struct file *file, void *buf, size_t count, loff_t *pos)
|
||||
static ssize_t write_file(struct nandsim *ns, struct file *file, void *buf, size_t count, loff_t pos)
|
||||
{
|
||||
mm_segment_t old_fs;
|
||||
ssize_t tx;
|
||||
int err, memalloc;
|
||||
|
||||
err = get_pages(ns, file, count, *pos);
|
||||
err = get_pages(ns, file, count, pos);
|
||||
if (err)
|
||||
return err;
|
||||
old_fs = get_fs();
|
||||
set_fs(get_ds());
|
||||
memalloc = set_memalloc();
|
||||
tx = vfs_write(file, (char __user *)buf, count, pos);
|
||||
tx = kernel_write(file, buf, count, pos);
|
||||
clear_memalloc(memalloc);
|
||||
set_fs(old_fs);
|
||||
put_pages(ns);
|
||||
return tx;
|
||||
}
|
||||
@ -1511,7 +1503,7 @@ static void read_page(struct nandsim *ns, int num)
|
||||
if (do_read_error(ns, num))
|
||||
return;
|
||||
pos = (loff_t)ns->regs.row * ns->geom.pgszoob + ns->regs.column + ns->regs.off;
|
||||
tx = read_file(ns, ns->cfile, ns->buf.byte, num, &pos);
|
||||
tx = read_file(ns, ns->cfile, ns->buf.byte, num, pos);
|
||||
if (tx != num) {
|
||||
NS_ERR("read_page: read error for page %d ret %ld\n", ns->regs.row, (long)tx);
|
||||
return;
|
||||
@ -1573,7 +1565,7 @@ static int prog_page(struct nandsim *ns, int num)
|
||||
u_char *pg_off;
|
||||
|
||||
if (ns->cfile) {
|
||||
loff_t off, pos;
|
||||
loff_t off;
|
||||
ssize_t tx;
|
||||
int all;
|
||||
|
||||
@ -1585,8 +1577,7 @@ static int prog_page(struct nandsim *ns, int num)
|
||||
memset(ns->file_buf, 0xff, ns->geom.pgszoob);
|
||||
} else {
|
||||
all = 0;
|
||||
pos = off;
|
||||
tx = read_file(ns, ns->cfile, pg_off, num, &pos);
|
||||
tx = read_file(ns, ns->cfile, pg_off, num, off);
|
||||
if (tx != num) {
|
||||
NS_ERR("prog_page: read error for page %d ret %ld\n", ns->regs.row, (long)tx);
|
||||
return -1;
|
||||
@ -1595,16 +1586,15 @@ static int prog_page(struct nandsim *ns, int num)
|
||||
for (i = 0; i < num; i++)
|
||||
pg_off[i] &= ns->buf.byte[i];
|
||||
if (all) {
|
||||
pos = (loff_t)ns->regs.row * ns->geom.pgszoob;
|
||||
tx = write_file(ns, ns->cfile, ns->file_buf, ns->geom.pgszoob, &pos);
|
||||
loff_t pos = (loff_t)ns->regs.row * ns->geom.pgszoob;
|
||||
tx = write_file(ns, ns->cfile, ns->file_buf, ns->geom.pgszoob, pos);
|
||||
if (tx != ns->geom.pgszoob) {
|
||||
NS_ERR("prog_page: write error for page %d ret %ld\n", ns->regs.row, (long)tx);
|
||||
return -1;
|
||||
}
|
||||
ns->pages_written[ns->regs.row] = 1;
|
||||
} else {
|
||||
pos = off;
|
||||
tx = write_file(ns, ns->cfile, pg_off, num, &pos);
|
||||
tx = write_file(ns, ns->cfile, pg_off, num, off);
|
||||
if (tx != num) {
|
||||
NS_ERR("prog_page: write error for page %d ret %ld\n", ns->regs.row, (long)tx);
|
||||
return -1;
|
||||
|
@ -194,7 +194,7 @@ static int vol_cdev_fsync(struct file *file, loff_t start, loff_t end,
|
||||
{
|
||||
struct ubi_volume_desc *desc = file->private_data;
|
||||
struct ubi_device *ubi = desc->vol->ubi;
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
int err;
|
||||
mutex_lock(&inode->i_mutex);
|
||||
err = ubi_sync(ubi->ubi_num);
|
||||
|
@ -2347,7 +2347,7 @@ static ssize_t mem_read(struct file *file, char __user *buf, size_t count,
|
||||
loff_t *ppos)
|
||||
{
|
||||
loff_t pos = *ppos;
|
||||
loff_t avail = file->f_path.dentry->d_inode->i_size;
|
||||
loff_t avail = file_inode(file)->i_size;
|
||||
unsigned int mem = (uintptr_t)file->private_data & 3;
|
||||
struct adapter *adap = file->private_data - mem;
|
||||
|
||||
|
@ -938,14 +938,14 @@ static int cosa_open(struct inode *inode, struct file *file)
|
||||
int ret = 0;
|
||||
|
||||
mutex_lock(&cosa_chardev_mutex);
|
||||
if ((n=iminor(file->f_path.dentry->d_inode)>>CARD_MINOR_BITS)
|
||||
if ((n=iminor(file_inode(file))>>CARD_MINOR_BITS)
|
||||
>= nr_cards) {
|
||||
ret = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
cosa = cosa_cards+n;
|
||||
|
||||
if ((n=iminor(file->f_path.dentry->d_inode)
|
||||
if ((n=iminor(file_inode(file))
|
||||
& ((1<<CARD_MINOR_BITS)-1)) >= cosa->nchannels) {
|
||||
ret = -ENODEV;
|
||||
goto out;
|
||||
|
@ -2778,7 +2778,7 @@ static ssize_t int_proc_write(struct file *file, const char __user *buffer,
|
||||
nr = nr * 10 + c;
|
||||
p++;
|
||||
} while (--len);
|
||||
*(int *)PDE(file->f_path.dentry->d_inode)->data = nr;
|
||||
*(int *)PDE(file_inode(file))->data = nr;
|
||||
return count;
|
||||
}
|
||||
|
||||
|
@ -139,17 +139,22 @@ static int __oprofilefs_create_file(struct super_block *sb,
|
||||
struct dentry *dentry;
|
||||
struct inode *inode;
|
||||
|
||||
mutex_lock(&root->d_inode->i_mutex);
|
||||
dentry = d_alloc_name(root, name);
|
||||
if (!dentry)
|
||||
if (!dentry) {
|
||||
mutex_unlock(&root->d_inode->i_mutex);
|
||||
return -ENOMEM;
|
||||
}
|
||||
inode = oprofilefs_get_inode(sb, S_IFREG | perm);
|
||||
if (!inode) {
|
||||
dput(dentry);
|
||||
mutex_unlock(&root->d_inode->i_mutex);
|
||||
return -ENOMEM;
|
||||
}
|
||||
inode->i_fop = fops;
|
||||
inode->i_private = priv;
|
||||
d_add(dentry, inode);
|
||||
dentry->d_inode->i_private = priv;
|
||||
mutex_unlock(&root->d_inode->i_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -212,17 +217,22 @@ struct dentry *oprofilefs_mkdir(struct super_block *sb,
|
||||
struct dentry *dentry;
|
||||
struct inode *inode;
|
||||
|
||||
mutex_lock(&root->d_inode->i_mutex);
|
||||
dentry = d_alloc_name(root, name);
|
||||
if (!dentry)
|
||||
if (!dentry) {
|
||||
mutex_unlock(&root->d_inode->i_mutex);
|
||||
return NULL;
|
||||
}
|
||||
inode = oprofilefs_get_inode(sb, S_IFDIR | 0755);
|
||||
if (!inode) {
|
||||
dput(dentry);
|
||||
mutex_unlock(&root->d_inode->i_mutex);
|
||||
return NULL;
|
||||
}
|
||||
inode->i_op = &simple_dir_inode_operations;
|
||||
inode->i_fop = &simple_dir_operations;
|
||||
d_add(dentry, inode);
|
||||
mutex_unlock(&root->d_inode->i_mutex);
|
||||
return dentry;
|
||||
}
|
||||
|
||||
|
@ -179,7 +179,7 @@ static int led_proc_open(struct inode *inode, struct file *file)
|
||||
static ssize_t led_proc_write(struct file *file, const char *buf,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
void *data = PDE(file->f_path.dentry->d_inode)->data;
|
||||
void *data = PDE(file_inode(file))->data;
|
||||
char *cur, lbuf[32];
|
||||
int d;
|
||||
|
||||
|
@ -21,7 +21,7 @@ static loff_t
|
||||
proc_bus_pci_lseek(struct file *file, loff_t off, int whence)
|
||||
{
|
||||
loff_t new = -1;
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
|
||||
mutex_lock(&inode->i_mutex);
|
||||
switch (whence) {
|
||||
@ -46,7 +46,7 @@ proc_bus_pci_lseek(struct file *file, loff_t off, int whence)
|
||||
static ssize_t
|
||||
proc_bus_pci_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
|
||||
{
|
||||
const struct inode *ino = file->f_path.dentry->d_inode;
|
||||
const struct inode *ino = file_inode(file);
|
||||
const struct proc_dir_entry *dp = PDE(ino);
|
||||
struct pci_dev *dev = dp->data;
|
||||
unsigned int pos = *ppos;
|
||||
@ -132,7 +132,7 @@ proc_bus_pci_read(struct file *file, char __user *buf, size_t nbytes, loff_t *pp
|
||||
static ssize_t
|
||||
proc_bus_pci_write(struct file *file, const char __user *buf, size_t nbytes, loff_t *ppos)
|
||||
{
|
||||
struct inode *ino = file->f_path.dentry->d_inode;
|
||||
struct inode *ino = file_inode(file);
|
||||
const struct proc_dir_entry *dp = PDE(ino);
|
||||
struct pci_dev *dev = dp->data;
|
||||
int pos = *ppos;
|
||||
@ -212,7 +212,7 @@ struct pci_filp_private {
|
||||
static long proc_bus_pci_ioctl(struct file *file, unsigned int cmd,
|
||||
unsigned long arg)
|
||||
{
|
||||
const struct proc_dir_entry *dp = PDE(file->f_dentry->d_inode);
|
||||
const struct proc_dir_entry *dp = PDE(file_inode(file));
|
||||
struct pci_dev *dev = dp->data;
|
||||
#ifdef HAVE_PCI_MMAP
|
||||
struct pci_filp_private *fpriv = file->private_data;
|
||||
@ -253,7 +253,7 @@ static long proc_bus_pci_ioctl(struct file *file, unsigned int cmd,
|
||||
#ifdef HAVE_PCI_MMAP
|
||||
static int proc_bus_pci_mmap(struct file *file, struct vm_area_struct *vma)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
const struct proc_dir_entry *dp = PDE(inode);
|
||||
struct pci_dev *dev = dp->data;
|
||||
struct pci_filp_private *fpriv = file->private_data;
|
||||
|
@ -3566,7 +3566,7 @@ static ssize_t sonypi_misc_read(struct file *file, char __user *buf,
|
||||
}
|
||||
|
||||
if (ret > 0) {
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
inode->i_atime = current_fs_time(inode->i_sb);
|
||||
}
|
||||
|
||||
|
@ -852,7 +852,7 @@ static ssize_t dispatch_proc_write(struct file *file,
|
||||
const char __user *userbuf,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
struct ibm_struct *ibm = PDE(file->f_path.dentry->d_inode)->data;
|
||||
struct ibm_struct *ibm = PDE(file_inode(file))->data;
|
||||
char *kernbuf;
|
||||
int ret;
|
||||
|
||||
|
@ -583,7 +583,7 @@ static int set_lcd_status(struct backlight_device *bd)
|
||||
static ssize_t lcd_proc_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
struct toshiba_acpi_dev *dev = PDE(file->f_path.dentry->d_inode)->data;
|
||||
struct toshiba_acpi_dev *dev = PDE(file_inode(file))->data;
|
||||
char cmd[42];
|
||||
size_t len;
|
||||
int value;
|
||||
@ -650,7 +650,7 @@ static int video_proc_open(struct inode *inode, struct file *file)
|
||||
static ssize_t video_proc_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
struct toshiba_acpi_dev *dev = PDE(file->f_path.dentry->d_inode)->data;
|
||||
struct toshiba_acpi_dev *dev = PDE(file_inode(file))->data;
|
||||
char *cmd, *buffer;
|
||||
int ret;
|
||||
int value;
|
||||
@ -750,7 +750,7 @@ static int fan_proc_open(struct inode *inode, struct file *file)
|
||||
static ssize_t fan_proc_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
struct toshiba_acpi_dev *dev = PDE(file->f_path.dentry->d_inode)->data;
|
||||
struct toshiba_acpi_dev *dev = PDE(file_inode(file))->data;
|
||||
char cmd[42];
|
||||
size_t len;
|
||||
int value;
|
||||
@ -822,7 +822,7 @@ static int keys_proc_open(struct inode *inode, struct file *file)
|
||||
static ssize_t keys_proc_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
struct toshiba_acpi_dev *dev = PDE(file->f_path.dentry->d_inode)->data;
|
||||
struct toshiba_acpi_dev *dev = PDE(file_inode(file))->data;
|
||||
char cmd[42];
|
||||
size_t len;
|
||||
int value;
|
||||
|
@ -30,7 +30,7 @@ static struct proc_dir_entry *isapnp_proc_bus_dir = NULL;
|
||||
static loff_t isapnp_proc_bus_lseek(struct file *file, loff_t off, int whence)
|
||||
{
|
||||
loff_t new = -1;
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
|
||||
mutex_lock(&inode->i_mutex);
|
||||
switch (whence) {
|
||||
@ -55,7 +55,7 @@ static loff_t isapnp_proc_bus_lseek(struct file *file, loff_t off, int whence)
|
||||
static ssize_t isapnp_proc_bus_read(struct file *file, char __user * buf,
|
||||
size_t nbytes, loff_t * ppos)
|
||||
{
|
||||
struct inode *ino = file->f_path.dentry->d_inode;
|
||||
struct inode *ino = file_inode(file);
|
||||
struct proc_dir_entry *dp = PDE(ino);
|
||||
struct pnp_dev *dev = dp->data;
|
||||
int pos = *ppos;
|
||||
|
@ -244,7 +244,7 @@ static int pnpbios_proc_open(struct inode *inode, struct file *file)
|
||||
static ssize_t pnpbios_proc_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *pos)
|
||||
{
|
||||
void *data = PDE(file->f_path.dentry->d_inode)->data;
|
||||
void *data = PDE(file_inode(file))->data;
|
||||
struct pnp_bios_node *node;
|
||||
int boot = (long)data >> 8;
|
||||
u8 nodenum = (long)data;
|
||||
|
@ -433,9 +433,9 @@ fs3270_open(struct inode *inode, struct file *filp)
|
||||
struct idal_buffer *ib;
|
||||
int minor, rc = 0;
|
||||
|
||||
if (imajor(filp->f_path.dentry->d_inode) != IBM_FS3270_MAJOR)
|
||||
if (imajor(file_inode(filp)) != IBM_FS3270_MAJOR)
|
||||
return -ENODEV;
|
||||
minor = iminor(filp->f_path.dentry->d_inode);
|
||||
minor = iminor(file_inode(filp));
|
||||
/* Check for minor 0 multiplexer. */
|
||||
if (minor == 0) {
|
||||
struct tty_struct *tty = get_current_tty();
|
||||
|
@ -273,13 +273,13 @@ tapechar_open (struct inode *inode, struct file *filp)
|
||||
int minor, rc;
|
||||
|
||||
DBF_EVENT(6, "TCHAR:open: %i:%i\n",
|
||||
imajor(filp->f_path.dentry->d_inode),
|
||||
iminor(filp->f_path.dentry->d_inode));
|
||||
imajor(file_inode(filp)),
|
||||
iminor(file_inode(filp)));
|
||||
|
||||
if (imajor(filp->f_path.dentry->d_inode) != tapechar_major)
|
||||
if (imajor(file_inode(filp)) != tapechar_major)
|
||||
return -ENODEV;
|
||||
|
||||
minor = iminor(filp->f_path.dentry->d_inode);
|
||||
minor = iminor(file_inode(filp));
|
||||
device = tape_find_device(minor / TAPE_MINORS_PER_DEV);
|
||||
if (IS_ERR(device)) {
|
||||
DBF_EVENT(3, "TCHAR:open: tape_find_device() failed\n");
|
||||
|
@ -703,7 +703,7 @@ static int ur_open(struct inode *inode, struct file *file)
|
||||
* We treat the minor number as the devno of the ur device
|
||||
* to find in the driver tree.
|
||||
*/
|
||||
devno = MINOR(file->f_dentry->d_inode->i_rdev);
|
||||
devno = MINOR(file_inode(file)->i_rdev);
|
||||
|
||||
urd = urdev_get_from_devno(devno);
|
||||
if (!urd) {
|
||||
|
@ -128,7 +128,7 @@ static int qstat_show(struct seq_file *m, void *v)
|
||||
static int qstat_seq_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
return single_open(filp, qstat_show,
|
||||
filp->f_path.dentry->d_inode->i_private);
|
||||
file_inode(filp)->i_private);
|
||||
}
|
||||
|
||||
static const struct file_operations debugfs_fops = {
|
||||
@ -221,7 +221,7 @@ static ssize_t qperf_seq_write(struct file *file, const char __user *ubuf,
|
||||
static int qperf_seq_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
return single_open(filp, qperf_show,
|
||||
filp->f_path.dentry->d_inode->i_private);
|
||||
file_inode(filp)->i_private);
|
||||
}
|
||||
|
||||
static struct file_operations debugfs_perf_fops = {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user