[PATCH] VFS: pass file pointer to filesystem from ftruncate()
This patch extends the iattr structure with a file pointer memeber, and adds an ATTR_FILE validity flag for this member. This is set if do_truncate() is invoked from ftruncate() or from do_coredump(). The change is source and binary compatible. Signed-off-by: Miklos Szeredi <miklos@szeredi.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

committed by
Linus Torvalds

parent
481bed4542
commit
cc4e69dee4
@@ -264,6 +264,7 @@ typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
|
||||
#define ATTR_ATTR_FLAG 1024
|
||||
#define ATTR_KILL_SUID 2048
|
||||
#define ATTR_KILL_SGID 4096
|
||||
#define ATTR_FILE 8192
|
||||
|
||||
/*
|
||||
* This is the Inode Attributes structure, used for notify_change(). It
|
||||
@@ -283,6 +284,13 @@ struct iattr {
|
||||
struct timespec ia_atime;
|
||||
struct timespec ia_mtime;
|
||||
struct timespec ia_ctime;
|
||||
|
||||
/*
|
||||
* Not an attribute, but an auxilary info for filesystems wanting to
|
||||
* implement an ftruncate() like method. NOTE: filesystem should
|
||||
* check for (ia_valid & ATTR_FILE), and not for (ia_file != NULL).
|
||||
*/
|
||||
struct file *ia_file;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -1288,7 +1296,7 @@ static inline int break_lease(struct inode *inode, unsigned int mode)
|
||||
|
||||
/* fs/open.c */
|
||||
|
||||
extern int do_truncate(struct dentry *, loff_t start);
|
||||
extern int do_truncate(struct dentry *, loff_t start, struct file *filp);
|
||||
extern long do_sys_open(const char __user *filename, int flags, int mode);
|
||||
extern struct file *filp_open(const char *, int, int);
|
||||
extern struct file * dentry_open(struct dentry *, struct vfsmount *, int);
|
||||
|
Reference in New Issue
Block a user