Commit cd566b34 authored by Linus Torvalds's avatar Linus Torvalds

Merge master.kernel.org:/home/mochel/BK/linux-2.5

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 4cb41595 9b6cc58d
...@@ -588,29 +588,6 @@ driverfs_create_file(struct driver_file_entry * entry, ...@@ -588,29 +588,6 @@ driverfs_create_file(struct driver_file_entry * entry,
return error; return error;
} }
/**
* __remove_file - remove a regular file in the filesystem
* @dentry: dentry of file to remove
*
* Call unlink to remove the file, and dput on the dentry to drop
* the refcount.
*/
static void __remove_file(struct dentry * dentry)
{
dget(dentry);
down(&dentry->d_inode->i_sem);
vfs_unlink(dentry->d_parent->d_inode,dentry);
up(&dentry->d_inode->i_sem);
dput(dentry);
/* remove reference count from when file was created */
dput(dentry);
put_mount();
}
/** /**
* driverfs_remove_file - exported file removal * driverfs_remove_file - exported file removal
* @dir: directory the file supposedly resides in * @dir: directory the file supposedly resides in
...@@ -621,14 +598,12 @@ static void __remove_file(struct dentry * dentry) ...@@ -621,14 +598,12 @@ static void __remove_file(struct dentry * dentry)
*/ */
void driverfs_remove_file(struct driver_dir_entry * dir, const char * name) void driverfs_remove_file(struct driver_dir_entry * dir, const char * name)
{ {
struct dentry * dentry;
struct list_head * node; struct list_head * node;
if (!dir->dentry) if (!dir->dentry)
return; return;
dentry = dget(dir->dentry); down(&dir->dentry->d_inode->i_sem);
down(&dentry->d_inode->i_sem);
node = dir->files.next; node = dir->files.next;
while (node != &dir->files) { while (node != &dir->files) {
...@@ -637,14 +612,13 @@ void driverfs_remove_file(struct driver_dir_entry * dir, const char * name) ...@@ -637,14 +612,13 @@ void driverfs_remove_file(struct driver_dir_entry * dir, const char * name)
entry = list_entry(node,struct driver_file_entry,node); entry = list_entry(node,struct driver_file_entry,node);
if (!strcmp(entry->name,name)) { if (!strcmp(entry->name,name)) {
list_del_init(node); list_del_init(node);
vfs_unlink(entry->dentry->d_parent->d_inode,entry->dentry);
__remove_file(entry->dentry); put_mount();
break; break;
} }
node = node->next; node = node->next;
} }
up(&dentry->d_inode->i_sem); up(&dir->dentry->d_inode->i_sem);
dput(dentry);
} }
/** /**
...@@ -673,15 +647,14 @@ void driverfs_remove_dir(struct driver_dir_entry * dir) ...@@ -673,15 +647,14 @@ void driverfs_remove_dir(struct driver_dir_entry * dir)
entry = list_entry(node,struct driver_file_entry,node); entry = list_entry(node,struct driver_file_entry,node);
list_del_init(node); list_del_init(node);
vfs_unlink(dentry->d_inode,entry->dentry);
__remove_file(entry->dentry); put_mount();
node = dir->files.next; node = dir->files.next;
} }
up(&dentry->d_inode->i_sem);
vfs_rmdir(dentry->d_parent->d_inode,dentry); vfs_rmdir(dentry->d_parent->d_inode,dentry);
up(&dentry->d_parent->d_inode->i_sem); up(&dentry->d_parent->d_inode->i_sem);
up(&dentry->d_inode->i_sem);
dput(dentry); dput(dentry);
done: done:
put_mount(); put_mount();
......
...@@ -557,7 +557,7 @@ static void load_balance(runqueue_t *this_rq, int idle) ...@@ -557,7 +557,7 @@ static void load_balance(runqueue_t *this_rq, int idle)
* Make sure nothing changed since we checked the * Make sure nothing changed since we checked the
* runqueue length. * runqueue length.
*/ */
if (busiest->nr_running <= this_rq->nr_running + 1) if (busiest->nr_running <= nr_running + 1)
goto out_unlock; goto out_unlock;
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment