diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-10 23:16:43 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-10 23:16:43 -0400 |
commit | 101105b1717f536ca741f940033996302d4ef191 (patch) | |
tree | 12ab41ae1b1b66105e9fa2ea763356d2be7e8b34 /fs/udf | |
parent | 35ff96dfd3c9aaa921b3e8dcac76b7697f2dcec0 (diff) | |
parent | 3873691e5ab34fa26948643d038a2b98c4437298 (diff) |
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
Diffstat (limited to 'fs/udf')
-rw-r--r-- | fs/udf/ialloc.c | 2 | ||||
-rw-r--r-- | fs/udf/inode.c | 4 | ||||
-rw-r--r-- | fs/udf/namei.c | 26 |
3 files changed, 18 insertions, 14 deletions
diff --git a/fs/udf/ialloc.c b/fs/udf/ialloc.c index e77db621ec89..c1ed18a10ce4 100644 --- a/fs/udf/ialloc.c +++ b/fs/udf/ialloc.c | |||
@@ -121,7 +121,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode) | |||
121 | else | 121 | else |
122 | iinfo->i_alloc_type = ICBTAG_FLAG_AD_LONG; | 122 | iinfo->i_alloc_type = ICBTAG_FLAG_AD_LONG; |
123 | inode->i_mtime = inode->i_atime = inode->i_ctime = | 123 | inode->i_mtime = inode->i_atime = inode->i_ctime = |
124 | iinfo->i_crtime = current_fs_time(inode->i_sb); | 124 | iinfo->i_crtime = current_time(inode); |
125 | if (unlikely(insert_inode_locked(inode) < 0)) { | 125 | if (unlikely(insert_inode_locked(inode) < 0)) { |
126 | make_bad_inode(inode); | 126 | make_bad_inode(inode); |
127 | iput(inode); | 127 | iput(inode); |
diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 55aa587bbc38..aad46401ede5 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c | |||
@@ -886,7 +886,7 @@ static sector_t inode_getblk(struct inode *inode, sector_t block, | |||
886 | *new = 1; | 886 | *new = 1; |
887 | iinfo->i_next_alloc_block = block; | 887 | iinfo->i_next_alloc_block = block; |
888 | iinfo->i_next_alloc_goal = newblocknum; | 888 | iinfo->i_next_alloc_goal = newblocknum; |
889 | inode->i_ctime = current_fs_time(inode->i_sb); | 889 | inode->i_ctime = current_time(inode); |
890 | 890 | ||
891 | if (IS_SYNC(inode)) | 891 | if (IS_SYNC(inode)) |
892 | udf_sync_inode(inode); | 892 | udf_sync_inode(inode); |
@@ -1268,7 +1268,7 @@ set_size: | |||
1268 | up_write(&iinfo->i_data_sem); | 1268 | up_write(&iinfo->i_data_sem); |
1269 | } | 1269 | } |
1270 | update_time: | 1270 | update_time: |
1271 | inode->i_mtime = inode->i_ctime = current_fs_time(inode->i_sb); | 1271 | inode->i_mtime = inode->i_ctime = current_time(inode); |
1272 | if (IS_SYNC(inode)) | 1272 | if (IS_SYNC(inode)) |
1273 | udf_sync_inode(inode); | 1273 | udf_sync_inode(inode); |
1274 | else | 1274 | else |
diff --git a/fs/udf/namei.c b/fs/udf/namei.c index c3e5c9679371..2d65e280748b 100644 --- a/fs/udf/namei.c +++ b/fs/udf/namei.c | |||
@@ -616,7 +616,7 @@ static int udf_add_nondir(struct dentry *dentry, struct inode *inode) | |||
616 | *(__le32 *)((struct allocDescImpUse *)cfi.icb.impUse)->impUse = | 616 | *(__le32 *)((struct allocDescImpUse *)cfi.icb.impUse)->impUse = |
617 | cpu_to_le32(iinfo->i_unique & 0x00000000FFFFFFFFUL); | 617 | cpu_to_le32(iinfo->i_unique & 0x00000000FFFFFFFFUL); |
618 | udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); | 618 | udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); |
619 | dir->i_ctime = dir->i_mtime = current_fs_time(dir->i_sb); | 619 | dir->i_ctime = dir->i_mtime = current_time(dir); |
620 | mark_inode_dirty(dir); | 620 | mark_inode_dirty(dir); |
621 | if (fibh.sbh != fibh.ebh) | 621 | if (fibh.sbh != fibh.ebh) |
622 | brelse(fibh.ebh); | 622 | brelse(fibh.ebh); |
@@ -730,7 +730,7 @@ static int udf_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) | |||
730 | cfi.fileCharacteristics |= FID_FILE_CHAR_DIRECTORY; | 730 | cfi.fileCharacteristics |= FID_FILE_CHAR_DIRECTORY; |
731 | udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); | 731 | udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); |
732 | inc_nlink(dir); | 732 | inc_nlink(dir); |
733 | dir->i_ctime = dir->i_mtime = current_fs_time(dir->i_sb); | 733 | dir->i_ctime = dir->i_mtime = current_time(dir); |
734 | mark_inode_dirty(dir); | 734 | mark_inode_dirty(dir); |
735 | unlock_new_inode(inode); | 735 | unlock_new_inode(inode); |
736 | d_instantiate(dentry, inode); | 736 | d_instantiate(dentry, inode); |
@@ -845,7 +845,7 @@ static int udf_rmdir(struct inode *dir, struct dentry *dentry) | |||
845 | inode->i_size = 0; | 845 | inode->i_size = 0; |
846 | inode_dec_link_count(dir); | 846 | inode_dec_link_count(dir); |
847 | inode->i_ctime = dir->i_ctime = dir->i_mtime = | 847 | inode->i_ctime = dir->i_ctime = dir->i_mtime = |
848 | current_fs_time(dir->i_sb); | 848 | current_time(inode); |
849 | mark_inode_dirty(dir); | 849 | mark_inode_dirty(dir); |
850 | 850 | ||
851 | end_rmdir: | 851 | end_rmdir: |
@@ -888,7 +888,7 @@ static int udf_unlink(struct inode *dir, struct dentry *dentry) | |||
888 | retval = udf_delete_entry(dir, fi, &fibh, &cfi); | 888 | retval = udf_delete_entry(dir, fi, &fibh, &cfi); |
889 | if (retval) | 889 | if (retval) |
890 | goto end_unlink; | 890 | goto end_unlink; |
891 | dir->i_ctime = dir->i_mtime = current_fs_time(dir->i_sb); | 891 | dir->i_ctime = dir->i_mtime = current_time(dir); |
892 | mark_inode_dirty(dir); | 892 | mark_inode_dirty(dir); |
893 | inode_dec_link_count(inode); | 893 | inode_dec_link_count(inode); |
894 | inode->i_ctime = dir->i_ctime; | 894 | inode->i_ctime = dir->i_ctime; |
@@ -1079,9 +1079,9 @@ static int udf_link(struct dentry *old_dentry, struct inode *dir, | |||
1079 | brelse(fibh.ebh); | 1079 | brelse(fibh.ebh); |
1080 | brelse(fibh.sbh); | 1080 | brelse(fibh.sbh); |
1081 | inc_nlink(inode); | 1081 | inc_nlink(inode); |
1082 | inode->i_ctime = current_fs_time(inode->i_sb); | 1082 | inode->i_ctime = current_time(inode); |
1083 | mark_inode_dirty(inode); | 1083 | mark_inode_dirty(inode); |
1084 | dir->i_ctime = dir->i_mtime = current_fs_time(dir->i_sb); | 1084 | dir->i_ctime = dir->i_mtime = current_time(dir); |
1085 | mark_inode_dirty(dir); | 1085 | mark_inode_dirty(dir); |
1086 | ihold(inode); | 1086 | ihold(inode); |
1087 | d_instantiate(dentry, inode); | 1087 | d_instantiate(dentry, inode); |
@@ -1093,7 +1093,8 @@ static int udf_link(struct dentry *old_dentry, struct inode *dir, | |||
1093 | * higher-level routines. | 1093 | * higher-level routines. |
1094 | */ | 1094 | */ |
1095 | static int udf_rename(struct inode *old_dir, struct dentry *old_dentry, | 1095 | static int udf_rename(struct inode *old_dir, struct dentry *old_dentry, |
1096 | struct inode *new_dir, struct dentry *new_dentry) | 1096 | struct inode *new_dir, struct dentry *new_dentry, |
1097 | unsigned int flags) | ||
1097 | { | 1098 | { |
1098 | struct inode *old_inode = d_inode(old_dentry); | 1099 | struct inode *old_inode = d_inode(old_dentry); |
1099 | struct inode *new_inode = d_inode(new_dentry); | 1100 | struct inode *new_inode = d_inode(new_dentry); |
@@ -1105,6 +1106,9 @@ static int udf_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
1105 | struct kernel_lb_addr tloc; | 1106 | struct kernel_lb_addr tloc; |
1106 | struct udf_inode_info *old_iinfo = UDF_I(old_inode); | 1107 | struct udf_inode_info *old_iinfo = UDF_I(old_inode); |
1107 | 1108 | ||
1109 | if (flags & ~RENAME_NOREPLACE) | ||
1110 | return -EINVAL; | ||
1111 | |||
1108 | ofi = udf_find_entry(old_dir, &old_dentry->d_name, &ofibh, &ocfi); | 1112 | ofi = udf_find_entry(old_dir, &old_dentry->d_name, &ofibh, &ocfi); |
1109 | if (IS_ERR(ofi)) { | 1113 | if (IS_ERR(ofi)) { |
1110 | retval = PTR_ERR(ofi); | 1114 | retval = PTR_ERR(ofi); |
@@ -1172,7 +1176,7 @@ static int udf_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
1172 | * Like most other Unix systems, set the ctime for inodes on a | 1176 | * Like most other Unix systems, set the ctime for inodes on a |
1173 | * rename. | 1177 | * rename. |
1174 | */ | 1178 | */ |
1175 | old_inode->i_ctime = current_fs_time(old_inode->i_sb); | 1179 | old_inode->i_ctime = current_time(old_inode); |
1176 | mark_inode_dirty(old_inode); | 1180 | mark_inode_dirty(old_inode); |
1177 | 1181 | ||
1178 | /* | 1182 | /* |
@@ -1188,11 +1192,11 @@ static int udf_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
1188 | udf_delete_entry(old_dir, ofi, &ofibh, &ocfi); | 1192 | udf_delete_entry(old_dir, ofi, &ofibh, &ocfi); |
1189 | 1193 | ||
1190 | if (new_inode) { | 1194 | if (new_inode) { |
1191 | new_inode->i_ctime = current_fs_time(new_inode->i_sb); | 1195 | new_inode->i_ctime = current_time(new_inode); |
1192 | inode_dec_link_count(new_inode); | 1196 | inode_dec_link_count(new_inode); |
1193 | } | 1197 | } |
1194 | old_dir->i_ctime = old_dir->i_mtime = current_fs_time(old_dir->i_sb); | 1198 | old_dir->i_ctime = old_dir->i_mtime = current_time(old_dir); |
1195 | new_dir->i_ctime = new_dir->i_mtime = current_fs_time(new_dir->i_sb); | 1199 | new_dir->i_ctime = new_dir->i_mtime = current_time(new_dir); |
1196 | mark_inode_dirty(old_dir); | 1200 | mark_inode_dirty(old_dir); |
1197 | mark_inode_dirty(new_dir); | 1201 | mark_inode_dirty(new_dir); |
1198 | 1202 | ||