diff options
author | OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> | 2008-10-15 18:50:29 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2008-10-23 05:13:20 -0400 |
commit | 4e9ed2f85af7adfa7c3f0efa839a53186254fdcb (patch) | |
tree | d59efd278d8d8474d9869211ba4424143ea84b75 | |
parent | 0612d9fb270a474fe6a46cc5b8d3f5b71cf5f580 (diff) |
[PATCH vfs-2.6 6/6] vfs: add LOOKUP_RENAME_TARGET intent
This adds LOOKUP_RENAME_TARGET intent for lookup of rename destination.
LOOKUP_RENAME_TARGET is going to be used like LOOKUP_CREATE. But since
the destination of rename() can be existing directory entry, so it has a
difference. Although that difference doesn't matter in my usage, this
tells it to user of this intent.
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
-rw-r--r-- | fs/namei.c | 1 | ||||
-rw-r--r-- | include/linux/namei.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/fs/namei.c b/fs/namei.c index 18894fdf048a..9e2a534383d9 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -2654,6 +2654,7 @@ asmlinkage long sys_renameat(int olddfd, const char __user *oldname, | |||
2654 | 2654 | ||
2655 | oldnd.flags &= ~LOOKUP_PARENT; | 2655 | oldnd.flags &= ~LOOKUP_PARENT; |
2656 | newnd.flags &= ~LOOKUP_PARENT; | 2656 | newnd.flags &= ~LOOKUP_PARENT; |
2657 | newnd.flags |= LOOKUP_RENAME_TARGET; | ||
2657 | 2658 | ||
2658 | trap = lock_rename(new_dir, old_dir); | 2659 | trap = lock_rename(new_dir, old_dir); |
2659 | 2660 | ||
diff --git a/include/linux/namei.h b/include/linux/namei.h index 6b5627afd2eb..99eb80306dc5 100644 --- a/include/linux/namei.h +++ b/include/linux/namei.h | |||
@@ -54,6 +54,7 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND}; | |||
54 | #define LOOKUP_OPEN 0x0100 | 54 | #define LOOKUP_OPEN 0x0100 |
55 | #define LOOKUP_CREATE 0x0200 | 55 | #define LOOKUP_CREATE 0x0200 |
56 | #define LOOKUP_EXCL 0x0400 | 56 | #define LOOKUP_EXCL 0x0400 |
57 | #define LOOKUP_RENAME_TARGET 0x0800 | ||
57 | 58 | ||
58 | extern int user_path_at(int, const char __user *, unsigned, struct path *); | 59 | extern int user_path_at(int, const char __user *, unsigned, struct path *); |
59 | 60 | ||