git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
fs
/
libfs.c
diff --git
a/fs/libfs.c
b/fs/libfs.c
index
16b38b1
..
f503fcd
100644
(file)
--- a/
fs/libfs.c
+++ b/
fs/libfs.c
@@
-63,7
+63,7
@@
int dcache_dir_open(struct inode *inode, struct file *file)
{
static struct qstr cursor_name = {.len = 1, .name = "."};
{
static struct qstr cursor_name = {.len = 1, .name = "."};
- file->private_data = d_alloc(file->f_dentry, &cursor_name);
+ file->private_data = d_alloc(file->f_
path.
dentry, &cursor_name);
return file->private_data ? 0 : -ENOMEM;
}
return file->private_data ? 0 : -ENOMEM;
}
@@
-76,7
+76,7
@@
int dcache_dir_close(struct inode *inode, struct file *file)
loff_t dcache_dir_lseek(struct file *file, loff_t offset, int origin)
{
loff_t dcache_dir_lseek(struct file *file, loff_t offset, int origin)
{
- mutex_lock(&file->f_dentry->d_inode->i_mutex);
+ mutex_lock(&file->f_
path.
dentry->d_inode->i_mutex);
switch (origin) {
case 1:
offset += file->f_pos;
switch (origin) {
case 1:
offset += file->f_pos;
@@
-84,7
+84,7
@@
loff_t dcache_dir_lseek(struct file *file, loff_t offset, int origin)
if (offset >= 0)
break;
default:
if (offset >= 0)
break;
default:
- mutex_unlock(&file->f_dentry->d_inode->i_mutex);
+ mutex_unlock(&file->f_
path.
dentry->d_inode->i_mutex);
return -EINVAL;
}
if (offset != file->f_pos) {
return -EINVAL;
}
if (offset != file->f_pos) {
@@
-96,8
+96,8
@@
loff_t dcache_dir_lseek(struct file *file, loff_t offset, int origin)
spin_lock(&dcache_lock);
list_del(&cursor->d_u.d_child);
spin_lock(&dcache_lock);
list_del(&cursor->d_u.d_child);
- p = file->f_dentry->d_subdirs.next;
- while (n && p != &file->f_dentry->d_subdirs) {
+ p = file->f_
path.
dentry->d_subdirs.next;
+ while (n && p != &file->f_
path.
dentry->d_subdirs) {
struct dentry *next;
next = list_entry(p, struct dentry, d_u.d_child);
if (!d_unhashed(next) && next->d_inode)
struct dentry *next;
next = list_entry(p, struct dentry, d_u.d_child);
if (!d_unhashed(next) && next->d_inode)
@@
-108,7
+108,7
@@
loff_t dcache_dir_lseek(struct file *file, loff_t offset, int origin)
spin_unlock(&dcache_lock);
}
}
spin_unlock(&dcache_lock);
}
}
- mutex_unlock(&file->f_dentry->d_inode->i_mutex);
+ mutex_unlock(&file->f_
path.
dentry->d_inode->i_mutex);
return offset;
}
return offset;
}
@@
-127,7
+127,7
@@
static inline unsigned char dt_type(struct inode *inode)
static inline int do_dcache_readdir_filter(struct file * filp,
void * dirent, filldir_t filldir, int (*filter)(struct dentry *dentry))
{
static inline int do_dcache_readdir_filter(struct file * filp,
void * dirent, filldir_t filldir, int (*filter)(struct dentry *dentry))
{
- struct dentry *dentry = filp->f_dentry;
+ struct dentry *dentry = filp->f_
path.
dentry;
struct dentry *cursor = filp->private_data;
struct list_head *p, *q = &cursor->d_u.d_child;
ino_t ino;
struct dentry *cursor = filp->private_data;
struct list_head *p, *q = &cursor->d_u.d_child;
ino_t ino;
@@
-258,7
+258,7
@@
int simple_link(struct dentry *old_dentry, struct inode *dir, struct dentry *den
struct inode *inode = old_dentry->d_inode;
inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME;
struct inode *inode = old_dentry->d_inode;
inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME;
- in
ode->i_nlink++
;
+ in
c_nlink(inode)
;
atomic_inc(&inode->i_count);
dget(dentry);
d_instantiate(dentry, inode);
atomic_inc(&inode->i_count);
dget(dentry);
d_instantiate(dentry, inode);
@@
-290,7
+290,7
@@
int simple_unlink(struct inode *dir, struct dentry *dentry)
struct inode *inode = dentry->d_inode;
inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME;
struct inode *inode = dentry->d_inode;
inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME;
-
inode->i_nlink--
;
+
drop_nlink(inode)
;
dput(dentry);
return 0;
}
dput(dentry);
return 0;
}
@@
-300,9
+300,9
@@
int simple_rmdir(struct inode *dir, struct dentry *dentry)
if (!simple_empty(dentry))
return -ENOTEMPTY;
if (!simple_empty(dentry))
return -ENOTEMPTY;
- d
entry->d_inode->i_nlink--
;
+ d
rop_nlink(dentry->d_inode)
;
simple_unlink(dir, dentry);
simple_unlink(dir, dentry);
- d
ir->i_nlink--
;
+ d
rop_nlink(dir)
;
return 0;
}
return 0;
}
@@
-318,10
+318,10
@@
int simple_rename(struct inode *old_dir, struct dentry *old_dentry,
if (new_dentry->d_inode) {
simple_unlink(new_dir, new_dentry);
if (they_are_dirs)
if (new_dentry->d_inode) {
simple_unlink(new_dir, new_dentry);
if (they_are_dirs)
-
old_dir->i_nlink--
;
+
drop_nlink(old_dir)
;
} else if (they_are_dirs) {
} else if (they_are_dirs) {
-
old_dir->i_nlink--
;
-
new_dir->i_nlink++
;
+
drop_nlink(old_dir)
;
+
inc_nlink(new_dir)
;
}
old_dir->i_ctime = old_dir->i_mtime = new_dir->i_ctime =
}
old_dir->i_ctime = old_dir->i_mtime = new_dir->i_ctime =
@@
-332,17
+332,9
@@
int simple_rename(struct inode *old_dir, struct dentry *old_dentry,
int simple_readpage(struct file *file, struct page *page)
{
int simple_readpage(struct file *file, struct page *page)
{
- void *kaddr;
-
- if (PageUptodate(page))
- goto out;
-
- kaddr = kmap_atomic(page, KM_USER0);
- memset(kaddr, 0, PAGE_CACHE_SIZE);
- kunmap_atomic(kaddr, KM_USER0);
+ clear_highpage(page);
flush_dcache_page(page);
SetPageUptodate(page);
flush_dcache_page(page);
SetPageUptodate(page);
-out:
unlock_page(page);
return 0;
}
unlock_page(page);
return 0;
}