Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9467c4fd authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'write_inode2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
  pass writeback_control to ->write_inode
  make sure data is on disk before calling ->write_inode
parents 35c2e967 a9185b41
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ struct adfs_discmap {

/* Inode stuff */
struct inode *adfs_iget(struct super_block *sb, struct object_info *obj);
int adfs_write_inode(struct inode *inode,int unused);
int adfs_write_inode(struct inode *inode, struct writeback_control *wbc);
int adfs_notify_change(struct dentry *dentry, struct iattr *attr);

/* map.c */
+3 −2
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
 */
#include <linux/smp_lock.h>
#include <linux/buffer_head.h>
#include <linux/writeback.h>
#include "adfs.h"

/*
@@ -360,7 +361,7 @@ out:
 * The adfs-specific inode data has already been updated by
 * adfs_notify_change()
 */
int adfs_write_inode(struct inode *inode, int wait)
int adfs_write_inode(struct inode *inode, struct writeback_control *wbc)
{
	struct super_block *sb = inode->i_sb;
	struct object_info obj;
@@ -375,7 +376,7 @@ int adfs_write_inode(struct inode *inode, int wait)
	obj.attr	= ADFS_I(inode)->attr;
	obj.size	= inode->i_size;

	ret = adfs_dir_update(sb, &obj, wait);
	ret = adfs_dir_update(sb, &obj, wbc->sync_mode == WB_SYNC_ALL);
	unlock_kernel();
	return ret;
}
+2 −1
Original line number Diff line number Diff line
@@ -175,7 +175,8 @@ extern void affs_delete_inode(struct inode *inode);
extern void			 affs_clear_inode(struct inode *inode);
extern struct inode		*affs_iget(struct super_block *sb,
					unsigned long ino);
extern int			 affs_write_inode(struct inode *inode, int);
extern int			 affs_write_inode(struct inode *inode,
					struct writeback_control *wbc);
extern int			 affs_add_entry(struct inode *dir, struct inode *inode, struct dentry *dentry, s32 type);

/* file.c */
+1 −1
Original line number Diff line number Diff line
@@ -166,7 +166,7 @@ bad_inode:
}

int
affs_write_inode(struct inode *inode, int unused)
affs_write_inode(struct inode *inode, struct writeback_control *wbc)
{
	struct super_block	*sb = inode->i_sb;
	struct buffer_head	*bh;
+0 −1
Original line number Diff line number Diff line
@@ -733,7 +733,6 @@ extern int afs_write_end(struct file *file, struct address_space *mapping,
			struct page *page, void *fsdata);
extern int afs_writepage(struct page *, struct writeback_control *);
extern int afs_writepages(struct address_space *, struct writeback_control *);
extern int afs_write_inode(struct inode *, int);
extern void afs_pages_written_back(struct afs_vnode *, struct afs_call *);
extern ssize_t afs_file_write(struct kiocb *, const struct iovec *,
			      unsigned long, loff_t);
Loading