Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 131071
b: refs/heads/master
c: 0bf2f3a
h: refs/heads/master
i:
  131069: a386c24
  131067: b24afba
  131063: 58f75ca
  131055: 5c79f1f
  131039: b0f0b3a
  131007: 512be15
  130943: 33c0295
  130815: 2fdfc7c
  130559: 8813e85
  130047: 1c6e33a
  129023: 3549f31
  126975: 5a59775
  122879: b3224e7
  114687: b5e6a13
  98303: 8d3fd52
  65535: 9f7407a
v: v3
  • Loading branch information
David Howells authored and James Morris committed Feb 6, 2009
1 parent 1cae592 commit 5e1d553
Show file tree
Hide file tree
Showing 35 changed files with 484 additions and 1,450 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ae1a25da8448271a99745da03100d5299575a269
refs/heads/master: 0bf2f3aec5474da80a60e1baca629af87ecb67b6
8 changes: 0 additions & 8 deletions trunk/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -1021,14 +1021,6 @@ M: mb@bu3sch.de
W: http://bu3sch.de/btgpio.php
S: Maintained

BTRFS FILE SYSTEM
P: Chris Mason
M: chris.mason@oracle.com
L: linux-btrfs@vger.kernel.org
W: http://btrfs.wiki.kernel.org/
T: git kernel.org:/pub/scm/linux/kernel/git/mason/btrfs-unstable.git
S: Maintained

BTTV VIDEO4LINUX DRIVER
P: Mauro Carvalho Chehab
M: mchehab@infradead.org
Expand Down
8 changes: 3 additions & 5 deletions trunk/arch/x86/ia32/ia32entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -418,9 +418,9 @@ ENTRY(ia32_syscall)
orl $TS_COMPAT,TI_status(%r10)
testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10)
jnz ia32_tracesys
ia32_do_syscall:
cmpl $(IA32_NR_syscalls-1),%eax
ja ia32_badsys
ia32_do_call:
ja int_ret_from_sys_call /* ia32_tracesys has set RAX(%rsp) */
IA32_ARG_FIXUP
call *ia32_sys_call_table(,%rax,8) # xxx: rip relative
ia32_sysret:
Expand All @@ -435,9 +435,7 @@ ia32_tracesys:
call syscall_trace_enter
LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */
RESTORE_REST
cmpl $(IA32_NR_syscalls-1),%eax
ja int_ret_from_sys_call /* ia32_tracesys has set RAX(%rsp) */
jmp ia32_do_call
jmp ia32_do_syscall
END(ia32_syscall)

ia32_badsys:
Expand Down
14 changes: 2 additions & 12 deletions trunk/fs/binfmt_elf.c
Original file line number Diff line number Diff line change
Expand Up @@ -1208,11 +1208,9 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
* check for an ELF header. If we find one, dump the first page to
* aid in determining what was mapped here.
*/
if (FILTER(ELF_HEADERS) &&
vma->vm_pgoff == 0 && (vma->vm_flags & VM_READ)) {
if (FILTER(ELF_HEADERS) && vma->vm_file != NULL && vma->vm_pgoff == 0) {
u32 __user *header = (u32 __user *) vma->vm_start;
u32 word;
mm_segment_t fs = get_fs();
/*
* Doing it this way gets the constant folded by GCC.
*/
Expand All @@ -1225,15 +1223,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
magic.elfmag[EI_MAG1] = ELFMAG1;
magic.elfmag[EI_MAG2] = ELFMAG2;
magic.elfmag[EI_MAG3] = ELFMAG3;
/*
* Switch to the user "segment" for get_user(),
* then put back what elf_core_dump() had in place.
*/
set_fs(USER_DS);
if (unlikely(get_user(word, header)))
word = 0;
set_fs(fs);
if (word == magic.cmp)
if (get_user(word, header) == 0 && word == magic.cmp)
return PAGE_SIZE;
}

Expand Down
13 changes: 0 additions & 13 deletions trunk/fs/btrfs/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,3 @@ config BTRFS_FS
module will be called btrfs.

If unsure, say N.

config BTRFS_FS_POSIX_ACL
bool "Btrfs POSIX Access Control Lists"
depends on BTRFS_FS
select FS_POSIX_ACL
help
POSIX Access Control Lists (ACLs) support permissions for users and
groups beyond the owner/group/world scheme.

To learn more about Access Control Lists, visit the POSIX ACLs for
Linux website <http://acl.bestbits.at/>.

If you don't know what Access Control Lists are, say N
61 changes: 8 additions & 53 deletions trunk/fs/btrfs/async-thread.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
* Boston, MA 021110-1307, USA.
*/

#include <linux/version.h>
#include <linux/kthread.h>
#include <linux/list.h>
#include <linux/spinlock.h>
#include <linux/freezer.h>
#include <linux/ftrace.h>
# include <linux/freezer.h>
#include "async-thread.h"

#define WORK_QUEUED_BIT 0
Expand Down Expand Up @@ -143,7 +143,6 @@ static int worker_loop(void *arg)
struct btrfs_work *work;
do {
spin_lock_irq(&worker->lock);
again_locked:
while (!list_empty(&worker->pending)) {
cur = worker->pending.next;
work = list_entry(cur, struct btrfs_work, list);
Expand All @@ -166,50 +165,14 @@ static int worker_loop(void *arg)
check_idle_worker(worker);

}
worker->working = 0;
if (freezing(current)) {
worker->working = 0;
spin_unlock_irq(&worker->lock);
refrigerator();
} else {
set_current_state(TASK_INTERRUPTIBLE);
spin_unlock_irq(&worker->lock);
if (!kthread_should_stop()) {
cpu_relax();
/*
* we've dropped the lock, did someone else
* jump_in?
*/
smp_mb();
if (!list_empty(&worker->pending))
continue;

/*
* this short schedule allows more work to
* come in without the queue functions
* needing to go through wake_up_process()
*
* worker->working is still 1, so nobody
* is going to try and wake us up
*/
schedule_timeout(1);
smp_mb();
if (!list_empty(&worker->pending))
continue;

/* still no more work?, sleep for real */
spin_lock_irq(&worker->lock);
set_current_state(TASK_INTERRUPTIBLE);
if (!list_empty(&worker->pending))
goto again_locked;

/*
* this makes sure we get a wakeup when someone
* adds something new to the queue
*/
worker->working = 0;
spin_unlock_irq(&worker->lock);

if (!kthread_should_stop())
schedule();
}
__set_current_state(TASK_RUNNING);
}
} while (!kthread_should_stop());
Expand Down Expand Up @@ -387,14 +350,13 @@ int btrfs_requeue_work(struct btrfs_work *work)
{
struct btrfs_worker_thread *worker = work->worker;
unsigned long flags;
int wake = 0;

if (test_and_set_bit(WORK_QUEUED_BIT, &work->flags))
goto out;

spin_lock_irqsave(&worker->lock, flags);
list_add_tail(&work->list, &worker->pending);
atomic_inc(&worker->num_pending);
list_add_tail(&work->list, &worker->pending);

/* by definition we're busy, take ourselves off the idle
* list
Expand All @@ -406,16 +368,10 @@ int btrfs_requeue_work(struct btrfs_work *work)
&worker->workers->worker_list);
spin_unlock_irqrestore(&worker->workers->lock, flags);
}
if (!worker->working) {
wake = 1;
worker->working = 1;
}

spin_unlock_irqrestore(&worker->lock, flags);
if (wake)
wake_up_process(worker->task);
out:

out:
return 0;
}

Expand All @@ -442,10 +398,9 @@ int btrfs_queue_worker(struct btrfs_workers *workers, struct btrfs_work *work)
}

spin_lock_irqsave(&worker->lock, flags);

list_add_tail(&work->list, &worker->pending);
atomic_inc(&worker->num_pending);
check_busy_worker(worker);
list_add_tail(&work->list, &worker->pending);

/*
* avoid calling into wake_up_process if this thread has already
Expand Down
1 change: 1 addition & 0 deletions trunk/fs/btrfs/compression.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include <linux/swap.h>
#include <linux/writeback.h>
#include <linux/bit_spinlock.h>
#include <linux/version.h>
#include <linux/pagevec.h>
#include "compat.h"
#include "ctree.h"
Expand Down
Loading

0 comments on commit 5e1d553

Please sign in to comment.