projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'ovl/rename2' into for-linus
[cascardo/linux.git]
/
fs
/
fat
/
namei_vfat.c
diff --git
a/fs/fat/namei_vfat.c
b/fs/fat/namei_vfat.c
index
92b7363
..
bf46a2d
100644
(file)
--- a/
fs/fat/namei_vfat.c
+++ b/
fs/fat/namei_vfat.c
@@
-777,7
+777,7
@@
static int vfat_create(struct inode *dir, struct dentry *dentry, umode_t mode,
mutex_lock(&MSDOS_SB(sb)->s_lock);
mutex_lock(&MSDOS_SB(sb)->s_lock);
- ts =
CURRENT_TIME_SEC
;
+ ts =
current_time(dir)
;
err = vfat_add_entry(dir, &dentry->d_name, 0, 0, &ts, &sinfo);
if (err)
goto out;
err = vfat_add_entry(dir, &dentry->d_name, 0, 0, &ts, &sinfo);
if (err)
goto out;
@@
-821,7
+821,7
@@
static int vfat_rmdir(struct inode *dir, struct dentry *dentry)
drop_nlink(dir);
clear_nlink(inode);
drop_nlink(dir);
clear_nlink(inode);
- inode->i_mtime = inode->i_atime =
CURRENT_TIME_SEC
;
+ inode->i_mtime = inode->i_atime =
current_time(inode)
;
fat_detach(inode);
dentry->d_time = dir->i_version;
out:
fat_detach(inode);
dentry->d_time = dir->i_version;
out:
@@
-847,7
+847,7
@@
static int vfat_unlink(struct inode *dir, struct dentry *dentry)
if (err)
goto out;
clear_nlink(inode);
if (err)
goto out;
clear_nlink(inode);
- inode->i_mtime = inode->i_atime =
CURRENT_TIME_SEC
;
+ inode->i_mtime = inode->i_atime =
current_time(inode)
;
fat_detach(inode);
dentry->d_time = dir->i_version;
out:
fat_detach(inode);
dentry->d_time = dir->i_version;
out:
@@
-866,7
+866,7
@@
static int vfat_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
mutex_lock(&MSDOS_SB(sb)->s_lock);
mutex_lock(&MSDOS_SB(sb)->s_lock);
- ts =
CURRENT_TIME_SEC
;
+ ts =
current_time(dir)
;
cluster = fat_alloc_new_dir(dir, &ts);
if (cluster < 0) {
err = cluster;
cluster = fat_alloc_new_dir(dir, &ts);
if (cluster < 0) {
err = cluster;
@@
-903,7
+903,8
@@
out:
}
static int vfat_rename(struct inode *old_dir, struct dentry *old_dentry,
}
static int vfat_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 buffer_head *dotdot_bh;
struct msdos_dir_entry *dotdot_de;
{
struct buffer_head *dotdot_bh;
struct msdos_dir_entry *dotdot_de;
@@
-914,6
+915,9
@@
static int vfat_rename(struct inode *old_dir, struct dentry *old_dentry,
int err, is_dir, update_dotdot, corrupt = 0;
struct super_block *sb = old_dir->i_sb;
int err, is_dir, update_dotdot, corrupt = 0;
struct super_block *sb = old_dir->i_sb;
+ if (flags & ~RENAME_NOREPLACE)
+ return -EINVAL;
+
old_sinfo.bh = sinfo.bh = dotdot_bh = NULL;
old_inode = d_inode(old_dentry);
new_inode = d_inode(new_dentry);
old_sinfo.bh = sinfo.bh = dotdot_bh = NULL;
old_inode = d_inode(old_dentry);
new_inode = d_inode(new_dentry);
@@
-931,7
+935,7
@@
static int vfat_rename(struct inode *old_dir, struct dentry *old_dentry,
}
}
}
}
- ts =
CURRENT_TIME_SEC
;
+ ts =
current_time(old_dir)
;
if (new_inode) {
if (is_dir) {
err = fat_dir_empty(new_inode);
if (new_inode) {
if (is_dir) {
err = fat_dir_empty(new_inode);