Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull more vfs updates from Al Viro: ">rename2() work from Miklos + current_time() from Deepa" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: fs: Replace current_fs_time() with current_time() fs: Replace CURRENT_TIME_SEC with current_time() for inode timestamps fs: Replace CURRENT_TIME with current_time() for inode timestamps fs: proc: Delete inode time initializations in proc_alloc_inode() vfs: Add current_time() api vfs: add note about i_op->rename changes to porting fs: rename "rename2" i_op to "rename" vfs: remove unused i_op->rename fs: make remaining filesystems use .rename2 libfs: support RENAME_NOREPLACE in simple_rename() fs: support RENAME_NOREPLACE for local filesystems ncpfs: fix unused variable warning
This commit is contained in:
@@ -121,7 +121,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode)
|
||||
else
|
||||
iinfo->i_alloc_type = ICBTAG_FLAG_AD_LONG;
|
||||
inode->i_mtime = inode->i_atime = inode->i_ctime =
|
||||
iinfo->i_crtime = current_fs_time(inode->i_sb);
|
||||
iinfo->i_crtime = current_time(inode);
|
||||
if (unlikely(insert_inode_locked(inode) < 0)) {
|
||||
make_bad_inode(inode);
|
||||
iput(inode);
|
||||
|
@@ -886,7 +886,7 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
|
||||
*new = 1;
|
||||
iinfo->i_next_alloc_block = block;
|
||||
iinfo->i_next_alloc_goal = newblocknum;
|
||||
inode->i_ctime = current_fs_time(inode->i_sb);
|
||||
inode->i_ctime = current_time(inode);
|
||||
|
||||
if (IS_SYNC(inode))
|
||||
udf_sync_inode(inode);
|
||||
@@ -1268,7 +1268,7 @@ set_size:
|
||||
up_write(&iinfo->i_data_sem);
|
||||
}
|
||||
update_time:
|
||||
inode->i_mtime = inode->i_ctime = current_fs_time(inode->i_sb);
|
||||
inode->i_mtime = inode->i_ctime = current_time(inode);
|
||||
if (IS_SYNC(inode))
|
||||
udf_sync_inode(inode);
|
||||
else
|
||||
|
@@ -616,7 +616,7 @@ static int udf_add_nondir(struct dentry *dentry, struct inode *inode)
|
||||
*(__le32 *)((struct allocDescImpUse *)cfi.icb.impUse)->impUse =
|
||||
cpu_to_le32(iinfo->i_unique & 0x00000000FFFFFFFFUL);
|
||||
udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL);
|
||||
dir->i_ctime = dir->i_mtime = current_fs_time(dir->i_sb);
|
||||
dir->i_ctime = dir->i_mtime = current_time(dir);
|
||||
mark_inode_dirty(dir);
|
||||
if (fibh.sbh != fibh.ebh)
|
||||
brelse(fibh.ebh);
|
||||
@@ -730,7 +730,7 @@ static int udf_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
|
||||
cfi.fileCharacteristics |= FID_FILE_CHAR_DIRECTORY;
|
||||
udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL);
|
||||
inc_nlink(dir);
|
||||
dir->i_ctime = dir->i_mtime = current_fs_time(dir->i_sb);
|
||||
dir->i_ctime = dir->i_mtime = current_time(dir);
|
||||
mark_inode_dirty(dir);
|
||||
unlock_new_inode(inode);
|
||||
d_instantiate(dentry, inode);
|
||||
@@ -845,7 +845,7 @@ static int udf_rmdir(struct inode *dir, struct dentry *dentry)
|
||||
inode->i_size = 0;
|
||||
inode_dec_link_count(dir);
|
||||
inode->i_ctime = dir->i_ctime = dir->i_mtime =
|
||||
current_fs_time(dir->i_sb);
|
||||
current_time(inode);
|
||||
mark_inode_dirty(dir);
|
||||
|
||||
end_rmdir:
|
||||
@@ -888,7 +888,7 @@ static int udf_unlink(struct inode *dir, struct dentry *dentry)
|
||||
retval = udf_delete_entry(dir, fi, &fibh, &cfi);
|
||||
if (retval)
|
||||
goto end_unlink;
|
||||
dir->i_ctime = dir->i_mtime = current_fs_time(dir->i_sb);
|
||||
dir->i_ctime = dir->i_mtime = current_time(dir);
|
||||
mark_inode_dirty(dir);
|
||||
inode_dec_link_count(inode);
|
||||
inode->i_ctime = dir->i_ctime;
|
||||
@@ -1079,9 +1079,9 @@ static int udf_link(struct dentry *old_dentry, struct inode *dir,
|
||||
brelse(fibh.ebh);
|
||||
brelse(fibh.sbh);
|
||||
inc_nlink(inode);
|
||||
inode->i_ctime = current_fs_time(inode->i_sb);
|
||||
inode->i_ctime = current_time(inode);
|
||||
mark_inode_dirty(inode);
|
||||
dir->i_ctime = dir->i_mtime = current_fs_time(dir->i_sb);
|
||||
dir->i_ctime = dir->i_mtime = current_time(dir);
|
||||
mark_inode_dirty(dir);
|
||||
ihold(inode);
|
||||
d_instantiate(dentry, inode);
|
||||
@@ -1093,7 +1093,8 @@ static int udf_link(struct dentry *old_dentry, struct inode *dir,
|
||||
* higher-level routines.
|
||||
*/
|
||||
static int udf_rename(struct inode *old_dir, struct dentry *old_dentry,
|
||||
struct inode *new_dir, struct dentry *new_dentry)
|
||||
struct inode *new_dir, struct dentry *new_dentry,
|
||||
unsigned int flags)
|
||||
{
|
||||
struct inode *old_inode = d_inode(old_dentry);
|
||||
struct inode *new_inode = d_inode(new_dentry);
|
||||
@@ -1105,6 +1106,9 @@ static int udf_rename(struct inode *old_dir, struct dentry *old_dentry,
|
||||
struct kernel_lb_addr tloc;
|
||||
struct udf_inode_info *old_iinfo = UDF_I(old_inode);
|
||||
|
||||
if (flags & ~RENAME_NOREPLACE)
|
||||
return -EINVAL;
|
||||
|
||||
ofi = udf_find_entry(old_dir, &old_dentry->d_name, &ofibh, &ocfi);
|
||||
if (IS_ERR(ofi)) {
|
||||
retval = PTR_ERR(ofi);
|
||||
@@ -1172,7 +1176,7 @@ static int udf_rename(struct inode *old_dir, struct dentry *old_dentry,
|
||||
* Like most other Unix systems, set the ctime for inodes on a
|
||||
* rename.
|
||||
*/
|
||||
old_inode->i_ctime = current_fs_time(old_inode->i_sb);
|
||||
old_inode->i_ctime = current_time(old_inode);
|
||||
mark_inode_dirty(old_inode);
|
||||
|
||||
/*
|
||||
@@ -1188,11 +1192,11 @@ static int udf_rename(struct inode *old_dir, struct dentry *old_dentry,
|
||||
udf_delete_entry(old_dir, ofi, &ofibh, &ocfi);
|
||||
|
||||
if (new_inode) {
|
||||
new_inode->i_ctime = current_fs_time(new_inode->i_sb);
|
||||
new_inode->i_ctime = current_time(new_inode);
|
||||
inode_dec_link_count(new_inode);
|
||||
}
|
||||
old_dir->i_ctime = old_dir->i_mtime = current_fs_time(old_dir->i_sb);
|
||||
new_dir->i_ctime = new_dir->i_mtime = current_fs_time(new_dir->i_sb);
|
||||
old_dir->i_ctime = old_dir->i_mtime = current_time(old_dir);
|
||||
new_dir->i_ctime = new_dir->i_mtime = current_time(new_dir);
|
||||
mark_inode_dirty(old_dir);
|
||||
mark_inode_dirty(new_dir);
|
||||
|
||||
|
Reference in New Issue
Block a user