Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
1ced4444
Commit
1ced4444
authored
Sep 30, 2003
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/acme/ksyms-2.6
into home.osdl.org:/home/torvalds/v2.5/linux
parents
db720de8
1966f91b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
94 additions
and
55 deletions
+94
-55
kernel/ksyms.c
kernel/ksyms.c
+0
-24
kernel/sched.c
kernel/sched.c
+42
-29
mm/filemap.c
mm/filemap.c
+52
-2
No files found.
kernel/ksyms.c
View file @
1ced4444
...
@@ -182,14 +182,7 @@ EXPORT_SYMBOL(open_bdev_excl);
...
@@ -182,14 +182,7 @@ EXPORT_SYMBOL(open_bdev_excl);
EXPORT_SYMBOL
(
close_bdev_excl
);
EXPORT_SYMBOL
(
close_bdev_excl
);
EXPORT_SYMBOL
(
open_by_devnum
);
EXPORT_SYMBOL
(
open_by_devnum
);
EXPORT_SYMBOL
(
blockdev_direct_IO
);
EXPORT_SYMBOL
(
blockdev_direct_IO
);
EXPORT_SYMBOL
(
generic_file_read
);
EXPORT_SYMBOL
(
generic_file_sendfile
);
EXPORT_SYMBOL
(
do_generic_mapping_read
);
EXPORT_SYMBOL
(
file_ra_state_init
);
EXPORT_SYMBOL
(
file_ra_state_init
);
EXPORT_SYMBOL
(
generic_file_write
);
EXPORT_SYMBOL
(
generic_file_write_nolock
);
EXPORT_SYMBOL
(
generic_file_mmap
);
EXPORT_SYMBOL
(
generic_file_readonly_mmap
);
EXPORT_SYMBOL
(
generic_ro_fops
);
EXPORT_SYMBOL
(
generic_ro_fops
);
EXPORT_SYMBOL
(
get_unused_fd
);
EXPORT_SYMBOL
(
get_unused_fd
);
EXPORT_SYMBOL
(
vfs_read
);
EXPORT_SYMBOL
(
vfs_read
);
...
@@ -212,12 +205,6 @@ EXPORT_SYMBOL(no_llseek);
...
@@ -212,12 +205,6 @@ EXPORT_SYMBOL(no_llseek);
EXPORT_SYMBOL
(
poll_initwait
);
EXPORT_SYMBOL
(
poll_initwait
);
EXPORT_SYMBOL
(
poll_freewait
);
EXPORT_SYMBOL
(
poll_freewait
);
EXPORT_SYMBOL
(
ROOT_DEV
);
EXPORT_SYMBOL
(
ROOT_DEV
);
EXPORT_SYMBOL
(
find_get_page
);
EXPORT_SYMBOL
(
find_lock_page
);
EXPORT_SYMBOL
(
find_trylock_page
);
EXPORT_SYMBOL
(
find_or_create_page
);
EXPORT_SYMBOL
(
grab_cache_page_nowait
);
EXPORT_SYMBOL
(
read_cache_page
);
EXPORT_SYMBOL
(
read_cache_pages
);
EXPORT_SYMBOL
(
read_cache_pages
);
EXPORT_SYMBOL
(
mark_page_accessed
);
EXPORT_SYMBOL
(
mark_page_accessed
);
EXPORT_SYMBOL
(
vfs_readdir
);
EXPORT_SYMBOL
(
vfs_readdir
);
...
@@ -242,13 +229,7 @@ EXPORT_SYMBOL(do_select);
...
@@ -242,13 +229,7 @@ EXPORT_SYMBOL(do_select);
/* for stackable file systems (lofs, wrapfs, cryptfs, etc.) */
/* for stackable file systems (lofs, wrapfs, cryptfs, etc.) */
EXPORT_SYMBOL
(
default_llseek
);
EXPORT_SYMBOL
(
default_llseek
);
EXPORT_SYMBOL
(
dentry_open
);
EXPORT_SYMBOL
(
dentry_open
);
#ifdef CONFIG_MMU
EXPORT_SYMBOL
(
filemap_nopage
);
#endif
EXPORT_SYMBOL
(
filemap_fdatawrite
);
EXPORT_SYMBOL
(
filemap_fdatawait
);
EXPORT_SYMBOL
(
lock_page
);
EXPORT_SYMBOL
(
lock_page
);
EXPORT_SYMBOL
(
unlock_page
);
/* device registration */
/* device registration */
EXPORT_SYMBOL
(
register_blkdev
);
EXPORT_SYMBOL
(
register_blkdev
);
...
@@ -264,9 +245,6 @@ EXPORT_SYMBOL(blkdev_get);
...
@@ -264,9 +245,6 @@ EXPORT_SYMBOL(blkdev_get);
EXPORT_SYMBOL
(
blkdev_put
);
EXPORT_SYMBOL
(
blkdev_put
);
EXPORT_SYMBOL
(
ioctl_by_bdev
);
EXPORT_SYMBOL
(
ioctl_by_bdev
);
EXPORT_SYMBOL
(
read_dev_sector
);
EXPORT_SYMBOL
(
read_dev_sector
);
EXPORT_SYMBOL_GPL
(
generic_file_direct_IO
);
EXPORT_SYMBOL
(
generic_file_readv
);
EXPORT_SYMBOL
(
generic_file_writev
);
EXPORT_SYMBOL
(
iov_shorten
);
EXPORT_SYMBOL
(
iov_shorten
);
EXPORT_SYMBOL_GPL
(
default_backing_dev_info
);
EXPORT_SYMBOL_GPL
(
default_backing_dev_info
);
...
@@ -368,7 +346,6 @@ EXPORT_SYMBOL(get_jiffies_64);
...
@@ -368,7 +346,6 @@ EXPORT_SYMBOL(get_jiffies_64);
EXPORT_SYMBOL
(
loops_per_jiffy
);
EXPORT_SYMBOL
(
loops_per_jiffy
);
#endif
#endif
/* misc */
/* misc */
EXPORT_SYMBOL
(
panic
);
EXPORT_SYMBOL
(
panic
);
EXPORT_SYMBOL
(
panic_notifier_list
);
EXPORT_SYMBOL
(
panic_notifier_list
);
...
@@ -431,7 +408,6 @@ EXPORT_SYMBOL(make_bad_inode);
...
@@ -431,7 +408,6 @@ EXPORT_SYMBOL(make_bad_inode);
EXPORT_SYMBOL
(
is_bad_inode
);
EXPORT_SYMBOL
(
is_bad_inode
);
EXPORT_SYMBOL
(
__inode_dir_notify
);
EXPORT_SYMBOL
(
__inode_dir_notify
);
EXPORT_SYMBOL
(
generic_osync_inode
);
EXPORT_SYMBOL
(
generic_osync_inode
);
EXPORT_SYMBOL
(
remove_suid
);
#ifdef CONFIG_UID16
#ifdef CONFIG_UID16
EXPORT_SYMBOL
(
overflowuid
);
EXPORT_SYMBOL
(
overflowuid
);
...
...
kernel/sched.c
View file @
1ced4444
...
@@ -643,6 +643,8 @@ int wake_up_process(task_t * p)
...
@@ -643,6 +643,8 @@ int wake_up_process(task_t * p)
return
try_to_wake_up
(
p
,
TASK_STOPPED
|
TASK_INTERRUPTIBLE
|
TASK_UNINTERRUPTIBLE
,
0
,
0
);
return
try_to_wake_up
(
p
,
TASK_STOPPED
|
TASK_INTERRUPTIBLE
|
TASK_UNINTERRUPTIBLE
,
0
,
0
);
}
}
EXPORT_SYMBOL
(
wake_up_process
);
int
wake_up_process_kick
(
task_t
*
p
)
int
wake_up_process_kick
(
task_t
*
p
)
{
{
return
try_to_wake_up
(
p
,
TASK_STOPPED
|
TASK_INTERRUPTIBLE
|
TASK_UNINTERRUPTIBLE
,
0
,
1
);
return
try_to_wake_up
(
p
,
TASK_STOPPED
|
TASK_INTERRUPTIBLE
|
TASK_UNINTERRUPTIBLE
,
0
,
1
);
...
@@ -1586,6 +1588,8 @@ asmlinkage void schedule(void)
...
@@ -1586,6 +1588,8 @@ asmlinkage void schedule(void)
goto
need_resched
;
goto
need_resched
;
}
}
EXPORT_SYMBOL
(
schedule
);
#ifdef CONFIG_PREEMPT
#ifdef CONFIG_PREEMPT
/*
/*
* this is is the entry point to schedule() from in-kernel preemption
* this is is the entry point to schedule() from in-kernel preemption
...
@@ -1613,6 +1617,8 @@ asmlinkage void preempt_schedule(void)
...
@@ -1613,6 +1617,8 @@ asmlinkage void preempt_schedule(void)
if
(
unlikely
(
test_thread_flag
(
TIF_NEED_RESCHED
)))
if
(
unlikely
(
test_thread_flag
(
TIF_NEED_RESCHED
)))
goto
need_resched
;
goto
need_resched
;
}
}
EXPORT_SYMBOL
(
preempt_schedule
);
#endif
/* CONFIG_PREEMPT */
#endif
/* CONFIG_PREEMPT */
int
default_wake_function
(
wait_queue_t
*
curr
,
unsigned
mode
,
int
sync
)
int
default_wake_function
(
wait_queue_t
*
curr
,
unsigned
mode
,
int
sync
)
...
@@ -1621,6 +1627,8 @@ int default_wake_function(wait_queue_t *curr, unsigned mode, int sync)
...
@@ -1621,6 +1627,8 @@ int default_wake_function(wait_queue_t *curr, unsigned mode, int sync)
return
try_to_wake_up
(
p
,
mode
,
sync
,
0
);
return
try_to_wake_up
(
p
,
mode
,
sync
,
0
);
}
}
EXPORT_SYMBOL
(
default_wake_function
);
/*
/*
* The core wakeup function. Non-exclusive wakeups (nr_exclusive == 0) just
* The core wakeup function. Non-exclusive wakeups (nr_exclusive == 0) just
* wake everything up. If it's an exclusive wakeup (nr_exclusive == small +ve
* wake everything up. If it's an exclusive wakeup (nr_exclusive == small +ve
...
@@ -1661,6 +1669,8 @@ void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr_exclusive)
...
@@ -1661,6 +1669,8 @@ void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr_exclusive)
spin_unlock_irqrestore
(
&
q
->
lock
,
flags
);
spin_unlock_irqrestore
(
&
q
->
lock
,
flags
);
}
}
EXPORT_SYMBOL
(
__wake_up
);
/*
/*
* Same as __wake_up but called with the spinlock in wait_queue_head_t held.
* Same as __wake_up but called with the spinlock in wait_queue_head_t held.
*/
*/
...
@@ -1697,6 +1707,8 @@ void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr_exclusive)
...
@@ -1697,6 +1707,8 @@ void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr_exclusive)
spin_unlock_irqrestore
(
&
q
->
lock
,
flags
);
spin_unlock_irqrestore
(
&
q
->
lock
,
flags
);
}
}
EXPORT_SYMBOL
(
__wake_up_sync
);
void
complete
(
struct
completion
*
x
)
void
complete
(
struct
completion
*
x
)
{
{
unsigned
long
flags
;
unsigned
long
flags
;
...
@@ -1707,6 +1719,8 @@ void complete(struct completion *x)
...
@@ -1707,6 +1719,8 @@ void complete(struct completion *x)
spin_unlock_irqrestore
(
&
x
->
wait
.
lock
,
flags
);
spin_unlock_irqrestore
(
&
x
->
wait
.
lock
,
flags
);
}
}
EXPORT_SYMBOL
(
complete
);
void
complete_all
(
struct
completion
*
x
)
void
complete_all
(
struct
completion
*
x
)
{
{
unsigned
long
flags
;
unsigned
long
flags
;
...
@@ -1738,6 +1752,8 @@ void wait_for_completion(struct completion *x)
...
@@ -1738,6 +1752,8 @@ void wait_for_completion(struct completion *x)
spin_unlock_irq
(
&
x
->
wait
.
lock
);
spin_unlock_irq
(
&
x
->
wait
.
lock
);
}
}
EXPORT_SYMBOL
(
wait_for_completion
);
#define SLEEP_ON_VAR \
#define SLEEP_ON_VAR \
unsigned long flags; \
unsigned long flags; \
wait_queue_t wait; \
wait_queue_t wait; \
...
@@ -1764,6 +1780,8 @@ void interruptible_sleep_on(wait_queue_head_t *q)
...
@@ -1764,6 +1780,8 @@ void interruptible_sleep_on(wait_queue_head_t *q)
SLEEP_ON_TAIL
SLEEP_ON_TAIL
}
}
EXPORT_SYMBOL
(
interruptible_sleep_on
);
long
interruptible_sleep_on_timeout
(
wait_queue_head_t
*
q
,
long
timeout
)
long
interruptible_sleep_on_timeout
(
wait_queue_head_t
*
q
,
long
timeout
)
{
{
SLEEP_ON_VAR
SLEEP_ON_VAR
...
@@ -1777,6 +1795,8 @@ long interruptible_sleep_on_timeout(wait_queue_head_t *q, long timeout)
...
@@ -1777,6 +1795,8 @@ long interruptible_sleep_on_timeout(wait_queue_head_t *q, long timeout)
return
timeout
;
return
timeout
;
}
}
EXPORT_SYMBOL
(
interruptible_sleep_on_timeout
);
void
sleep_on
(
wait_queue_head_t
*
q
)
void
sleep_on
(
wait_queue_head_t
*
q
)
{
{
SLEEP_ON_VAR
SLEEP_ON_VAR
...
@@ -1788,6 +1808,8 @@ void sleep_on(wait_queue_head_t *q)
...
@@ -1788,6 +1808,8 @@ void sleep_on(wait_queue_head_t *q)
SLEEP_ON_TAIL
SLEEP_ON_TAIL
}
}
EXPORT_SYMBOL
(
sleep_on
);
long
sleep_on_timeout
(
wait_queue_head_t
*
q
,
long
timeout
)
long
sleep_on_timeout
(
wait_queue_head_t
*
q
,
long
timeout
)
{
{
SLEEP_ON_VAR
SLEEP_ON_VAR
...
@@ -1801,6 +1823,8 @@ long sleep_on_timeout(wait_queue_head_t *q, long timeout)
...
@@ -1801,6 +1823,8 @@ long sleep_on_timeout(wait_queue_head_t *q, long timeout)
return
timeout
;
return
timeout
;
}
}
EXPORT_SYMBOL
(
sleep_on_timeout
);
void
scheduling_functions_end_here
(
void
)
{
}
void
scheduling_functions_end_here
(
void
)
{
}
void
set_user_nice
(
task_t
*
p
,
long
nice
)
void
set_user_nice
(
task_t
*
p
,
long
nice
)
...
@@ -1850,6 +1874,8 @@ void set_user_nice(task_t *p, long nice)
...
@@ -1850,6 +1874,8 @@ void set_user_nice(task_t *p, long nice)
task_rq_unlock
(
rq
,
&
flags
);
task_rq_unlock
(
rq
,
&
flags
);
}
}
EXPORT_SYMBOL
(
set_user_nice
);
#ifndef __alpha__
#ifndef __alpha__
/*
/*
...
@@ -1916,6 +1942,8 @@ int task_nice(task_t *p)
...
@@ -1916,6 +1942,8 @@ int task_nice(task_t *p)
return
TASK_NICE
(
p
);
return
TASK_NICE
(
p
);
}
}
EXPORT_SYMBOL
(
task_nice
);
/**
/**
* task_curr - is this task currently executing on a CPU?
* task_curr - is this task currently executing on a CPU?
* @p: the task in question.
* @p: the task in question.
...
@@ -1934,6 +1962,8 @@ int idle_cpu(int cpu)
...
@@ -1934,6 +1962,8 @@ int idle_cpu(int cpu)
return
cpu_curr
(
cpu
)
==
cpu_rq
(
cpu
)
->
idle
;
return
cpu_curr
(
cpu
)
==
cpu_rq
(
cpu
)
->
idle
;
}
}
EXPORT_SYMBOL
(
idle_cpu
);
/**
/**
* find_process_by_pid - find a process with a matching PID value.
* find_process_by_pid - find a process with a matching PID value.
* @pid: the pid in question.
* @pid: the pid in question.
...
@@ -2261,6 +2291,8 @@ void __cond_resched(void)
...
@@ -2261,6 +2291,8 @@ void __cond_resched(void)
schedule
();
schedule
();
}
}
EXPORT_SYMBOL
(
__cond_resched
);
/**
/**
* yield - yield the current processor to other threads.
* yield - yield the current processor to other threads.
*
*
...
@@ -2273,6 +2305,8 @@ void yield(void)
...
@@ -2273,6 +2305,8 @@ void yield(void)
sys_sched_yield
();
sys_sched_yield
();
}
}
EXPORT_SYMBOL
(
yield
);
/*
/*
* This task is about to go to sleep on IO. Increment rq->nr_iowait so
* This task is about to go to sleep on IO. Increment rq->nr_iowait so
* that process accounting knows that this is a task in IO wait state.
* that process accounting knows that this is a task in IO wait state.
...
@@ -2289,6 +2323,8 @@ void io_schedule(void)
...
@@ -2289,6 +2323,8 @@ void io_schedule(void)
atomic_dec
(
&
rq
->
nr_iowait
);
atomic_dec
(
&
rq
->
nr_iowait
);
}
}
EXPORT_SYMBOL
(
io_schedule
);
long
io_schedule_timeout
(
long
timeout
)
long
io_schedule_timeout
(
long
timeout
)
{
{
struct
runqueue
*
rq
=
this_rq
();
struct
runqueue
*
rq
=
this_rq
();
...
@@ -2574,7 +2610,8 @@ int set_cpus_allowed(task_t *p, cpumask_t new_mask)
...
@@ -2574,7 +2610,8 @@ int set_cpus_allowed(task_t *p, cpumask_t new_mask)
wait_for_completion
(
&
req
.
done
);
wait_for_completion
(
&
req
.
done
);
return
0
;
return
0
;
}
}
EXPORT_SYMBOL
(
set_cpus_allowed
);
EXPORT_SYMBOL_GPL
(
set_cpus_allowed
);
/* Move (not current) task off this cpu, onto dest cpu. */
/* Move (not current) task off this cpu, onto dest cpu. */
static
void
move_task_away
(
struct
task_struct
*
p
,
int
dest_cpu
)
static
void
move_task_away
(
struct
task_struct
*
p
,
int
dest_cpu
)
...
@@ -2821,6 +2858,7 @@ void __might_sleep(char *file, int line)
...
@@ -2821,6 +2858,7 @@ void __might_sleep(char *file, int line)
}
}
#endif
#endif
}
}
EXPORT_SYMBOL
(
__might_sleep
);
#endif
#endif
...
@@ -2849,6 +2887,8 @@ void __preempt_spin_lock(spinlock_t *lock)
...
@@ -2849,6 +2887,8 @@ void __preempt_spin_lock(spinlock_t *lock)
}
while
(
!
_raw_spin_trylock
(
lock
));
}
while
(
!
_raw_spin_trylock
(
lock
));
}
}
EXPORT_SYMBOL
(
__preempt_spin_lock
);
void
__preempt_write_lock
(
rwlock_t
*
lock
)
void
__preempt_write_lock
(
rwlock_t
*
lock
)
{
{
if
(
preempt_count
()
>
1
)
{
if
(
preempt_count
()
>
1
)
{
...
@@ -2863,33 +2903,6 @@ void __preempt_write_lock(rwlock_t *lock)
...
@@ -2863,33 +2903,6 @@ void __preempt_write_lock(rwlock_t *lock)
preempt_disable
();
preempt_disable
();
}
while
(
!
_raw_write_trylock
(
lock
));
}
while
(
!
_raw_write_trylock
(
lock
));
}
}
#endif
EXPORT_SYMBOL
(
__cond_resched
);
EXPORT_SYMBOL
(
__wake_up
);
EXPORT_SYMBOL
(
__wake_up_sync
);
EXPORT_SYMBOL
(
complete
);
EXPORT_SYMBOL
(
default_wake_function
);
EXPORT_SYMBOL
(
idle_cpu
);
EXPORT_SYMBOL
(
interruptible_sleep_on
);
EXPORT_SYMBOL
(
interruptible_sleep_on_timeout
);
EXPORT_SYMBOL
(
io_schedule
);
EXPORT_SYMBOL
(
schedule
);
EXPORT_SYMBOL
(
set_user_nice
);
EXPORT_SYMBOL
(
sleep_on
);
EXPORT_SYMBOL
(
sleep_on_timeout
);
EXPORT_SYMBOL
(
task_nice
);
EXPORT_SYMBOL
(
wait_for_completion
);
EXPORT_SYMBOL
(
wake_up_process
);
EXPORT_SYMBOL
(
yield
);
#ifdef CONFIG_DEBUG_SPINLOCK_SLEEP
EXPORT_SYMBOL
(
__might_sleep
);
#endif
#ifdef CONFIG_PREEMPT
#ifdef CONFIG_SMP
EXPORT_SYMBOL
(
__preempt_spin_lock
);
EXPORT_SYMBOL
(
__preempt_write_lock
);
EXPORT_SYMBOL
(
__preempt_write_lock
);
#endif
#endif
/* defined(CONFIG_SMP) && defined(CONFIG_PREEMPT) */
EXPORT_SYMBOL
(
preempt_schedule
);
#endif
mm/filemap.c
View file @
1ced4444
...
@@ -151,6 +151,8 @@ int filemap_fdatawrite(struct address_space *mapping)
...
@@ -151,6 +151,8 @@ int filemap_fdatawrite(struct address_space *mapping)
return
__filemap_fdatawrite
(
mapping
,
WB_SYNC_ALL
);
return
__filemap_fdatawrite
(
mapping
,
WB_SYNC_ALL
);
}
}
EXPORT_SYMBOL
(
filemap_fdatawrite
);
/*
/*
* This is a mostly non-blocking flush. Not suitable for data-integrity
* This is a mostly non-blocking flush. Not suitable for data-integrity
* purposes.
* purposes.
...
@@ -216,6 +218,8 @@ int filemap_fdatawait(struct address_space * mapping)
...
@@ -216,6 +218,8 @@ int filemap_fdatawait(struct address_space * mapping)
return
ret
;
return
ret
;
}
}
EXPORT_SYMBOL
(
filemap_fdatawait
);
/*
/*
* This adds a page to the page cache, starting out as locked, unreferenced,
* This adds a page to the page cache, starting out as locked, unreferenced,
* not uptodate and with no errors.
* not uptodate and with no errors.
...
@@ -253,6 +257,7 @@ int add_to_page_cache(struct page *page, struct address_space *mapping,
...
@@ -253,6 +257,7 @@ int add_to_page_cache(struct page *page, struct address_space *mapping,
}
}
return
error
;
return
error
;
}
}
EXPORT_SYMBOL
(
add_to_page_cache
);
EXPORT_SYMBOL
(
add_to_page_cache
);
int
add_to_page_cache_lru
(
struct
page
*
page
,
struct
address_space
*
mapping
,
int
add_to_page_cache_lru
(
struct
page
*
page
,
struct
address_space
*
mapping
,
...
@@ -295,6 +300,7 @@ void wait_on_page_bit(struct page *page, int bit_nr)
...
@@ -295,6 +300,7 @@ void wait_on_page_bit(struct page *page, int bit_nr)
}
while
(
test_bit
(
bit_nr
,
&
page
->
flags
));
}
while
(
test_bit
(
bit_nr
,
&
page
->
flags
));
finish_wait
(
waitqueue
,
&
wait
);
finish_wait
(
waitqueue
,
&
wait
);
}
}
EXPORT_SYMBOL
(
wait_on_page_bit
);
EXPORT_SYMBOL
(
wait_on_page_bit
);
/**
/**
...
@@ -323,6 +329,8 @@ void unlock_page(struct page *page)
...
@@ -323,6 +329,8 @@ void unlock_page(struct page *page)
wake_up_all
(
waitqueue
);
wake_up_all
(
waitqueue
);
}
}
EXPORT_SYMBOL
(
unlock_page
);
/*
/*
* End writeback against a page.
* End writeback against a page.
*/
*/
...
@@ -339,6 +347,7 @@ void end_page_writeback(struct page *page)
...
@@ -339,6 +347,7 @@ void end_page_writeback(struct page *page)
if
(
waitqueue_active
(
waitqueue
))
if
(
waitqueue_active
(
waitqueue
))
wake_up_all
(
waitqueue
);
wake_up_all
(
waitqueue
);
}
}
EXPORT_SYMBOL
(
end_page_writeback
);
EXPORT_SYMBOL
(
end_page_writeback
);
/*
/*
...
@@ -363,6 +372,7 @@ void __lock_page(struct page *page)
...
@@ -363,6 +372,7 @@ void __lock_page(struct page *page)
}
}
finish_wait
(
wqh
,
&
wait
);
finish_wait
(
wqh
,
&
wait
);
}
}
EXPORT_SYMBOL
(
__lock_page
);
EXPORT_SYMBOL
(
__lock_page
);
/*
/*
...
@@ -385,6 +395,8 @@ struct page * find_get_page(struct address_space *mapping, unsigned long offset)
...
@@ -385,6 +395,8 @@ struct page * find_get_page(struct address_space *mapping, unsigned long offset)
return
page
;
return
page
;
}
}
EXPORT_SYMBOL
(
find_get_page
);
/*
/*
* Same as above, but trylock it instead of incrementing the count.
* Same as above, but trylock it instead of incrementing the count.
*/
*/
...
@@ -400,6 +412,8 @@ struct page *find_trylock_page(struct address_space *mapping, unsigned long offs
...
@@ -400,6 +412,8 @@ struct page *find_trylock_page(struct address_space *mapping, unsigned long offs
return
page
;
return
page
;
}
}
EXPORT_SYMBOL
(
find_trylock_page
);
/**
/**
* find_lock_page - locate, pin and lock a pagecache page
* find_lock_page - locate, pin and lock a pagecache page
*
*
...
@@ -438,6 +452,8 @@ struct page *find_lock_page(struct address_space *mapping,
...
@@ -438,6 +452,8 @@ struct page *find_lock_page(struct address_space *mapping,
return
page
;
return
page
;
}
}
EXPORT_SYMBOL
(
find_lock_page
);
/**
/**
* find_or_create_page - locate or add a pagecache page
* find_or_create_page - locate or add a pagecache page
*
*
...
@@ -482,6 +498,8 @@ struct page *find_or_create_page(struct address_space *mapping,
...
@@ -482,6 +498,8 @@ struct page *find_or_create_page(struct address_space *mapping,
return
page
;
return
page
;
}
}
EXPORT_SYMBOL
(
find_or_create_page
);
/**
/**
* find_get_pages - gang pagecache lookup
* find_get_pages - gang pagecache lookup
* @mapping: The address_space to search
* @mapping: The address_space to search
...
@@ -543,6 +561,8 @@ grab_cache_page_nowait(struct address_space *mapping, unsigned long index)
...
@@ -543,6 +561,8 @@ grab_cache_page_nowait(struct address_space *mapping, unsigned long index)
return
page
;
return
page
;
}
}
EXPORT_SYMBOL
(
grab_cache_page_nowait
);
/*
/*
* This is a generic file read routine, and uses the
* This is a generic file read routine, and uses the
* inode->i_op->readpage() function for the actual low-level
* inode->i_op->readpage() function for the actual low-level
...
@@ -699,6 +719,8 @@ void do_generic_mapping_read(struct address_space *mapping,
...
@@ -699,6 +719,8 @@ void do_generic_mapping_read(struct address_space *mapping,
update_atime
(
inode
);
update_atime
(
inode
);
}
}
EXPORT_SYMBOL
(
do_generic_mapping_read
);
int
file_read_actor
(
read_descriptor_t
*
desc
,
struct
page
*
page
,
int
file_read_actor
(
read_descriptor_t
*
desc
,
struct
page
*
page
,
unsigned
long
offset
,
unsigned
long
size
)
unsigned
long
offset
,
unsigned
long
size
)
{
{
...
@@ -816,6 +838,8 @@ __generic_file_aio_read(struct kiocb *iocb, const struct iovec *iov,
...
@@ -816,6 +838,8 @@ __generic_file_aio_read(struct kiocb *iocb, const struct iovec *iov,
return
retval
;
return
retval
;
}
}
EXPORT_SYMBOL
(
__generic_file_aio_read
);
ssize_t
ssize_t
generic_file_aio_read
(
struct
kiocb
*
iocb
,
char
__user
*
buf
,
size_t
count
,
loff_t
pos
)
generic_file_aio_read
(
struct
kiocb
*
iocb
,
char
__user
*
buf
,
size_t
count
,
loff_t
pos
)
{
{
...
@@ -824,8 +848,8 @@ generic_file_aio_read(struct kiocb *iocb, char __user *buf, size_t count, loff_t
...
@@ -824,8 +848,8 @@ generic_file_aio_read(struct kiocb *iocb, char __user *buf, size_t count, loff_t
BUG_ON
(
iocb
->
ki_pos
!=
pos
);
BUG_ON
(
iocb
->
ki_pos
!=
pos
);
return
__generic_file_aio_read
(
iocb
,
&
local_iov
,
1
,
&
iocb
->
ki_pos
);
return
__generic_file_aio_read
(
iocb
,
&
local_iov
,
1
,
&
iocb
->
ki_pos
);
}
}
EXPORT_SYMBOL
(
generic_file_aio_read
);
EXPORT_SYMBOL
(
generic_file_aio_read
);
EXPORT_SYMBOL
(
__generic_file_aio_read
);
ssize_t
ssize_t
generic_file_read
(
struct
file
*
filp
,
char
__user
*
buf
,
size_t
count
,
loff_t
*
ppos
)
generic_file_read
(
struct
file
*
filp
,
char
__user
*
buf
,
size_t
count
,
loff_t
*
ppos
)
...
@@ -841,6 +865,8 @@ generic_file_read(struct file *filp, char __user *buf, size_t count, loff_t *ppo
...
@@ -841,6 +865,8 @@ generic_file_read(struct file *filp, char __user *buf, size_t count, loff_t *ppo
return
ret
;
return
ret
;
}
}
EXPORT_SYMBOL
(
generic_file_read
);
int
file_send_actor
(
read_descriptor_t
*
desc
,
struct
page
*
page
,
unsigned
long
offset
,
unsigned
long
size
)
int
file_send_actor
(
read_descriptor_t
*
desc
,
struct
page
*
page
,
unsigned
long
offset
,
unsigned
long
size
)
{
{
ssize_t
written
;
ssize_t
written
;
...
@@ -880,6 +906,8 @@ ssize_t generic_file_sendfile(struct file *in_file, loff_t *ppos,
...
@@ -880,6 +906,8 @@ ssize_t generic_file_sendfile(struct file *in_file, loff_t *ppos,
return
desc
.
error
;
return
desc
.
error
;
}
}
EXPORT_SYMBOL
(
generic_file_sendfile
);
static
ssize_t
static
ssize_t
do_readahead
(
struct
address_space
*
mapping
,
struct
file
*
filp
,
do_readahead
(
struct
address_space
*
mapping
,
struct
file
*
filp
,
unsigned
long
index
,
unsigned
long
nr
)
unsigned
long
index
,
unsigned
long
nr
)
...
@@ -1126,6 +1154,8 @@ struct page * filemap_nopage(struct vm_area_struct * area, unsigned long address
...
@@ -1126,6 +1154,8 @@ struct page * filemap_nopage(struct vm_area_struct * area, unsigned long address
return
NULL
;
return
NULL
;
}
}
EXPORT_SYMBOL
(
filemap_nopage
);
static
struct
page
*
filemap_getpage
(
struct
file
*
file
,
unsigned
long
pgoff
,
static
struct
page
*
filemap_getpage
(
struct
file
*
file
,
unsigned
long
pgoff
,
int
nonblock
)
int
nonblock
)
{
{
...
@@ -1330,6 +1360,9 @@ int generic_file_readonly_mmap(struct file * file, struct vm_area_struct * vma)
...
@@ -1330,6 +1360,9 @@ int generic_file_readonly_mmap(struct file * file, struct vm_area_struct * vma)
}
}
#endif
/* CONFIG_MMU */
#endif
/* CONFIG_MMU */
EXPORT_SYMBOL
(
generic_file_mmap
);
EXPORT_SYMBOL
(
generic_file_readonly_mmap
);
static
inline
struct
page
*
__read_cache_page
(
struct
address_space
*
mapping
,
static
inline
struct
page
*
__read_cache_page
(
struct
address_space
*
mapping
,
unsigned
long
index
,
unsigned
long
index
,
int
(
*
filler
)(
void
*
,
struct
page
*
),
int
(
*
filler
)(
void
*
,
struct
page
*
),
...
@@ -1406,6 +1439,8 @@ struct page *read_cache_page(struct address_space *mapping,
...
@@ -1406,6 +1439,8 @@ struct page *read_cache_page(struct address_space *mapping,
return
page
;
return
page
;
}
}
EXPORT_SYMBOL
(
read_cache_page
);
/*
/*
* If the page was newly created, increment its refcount and add it to the
* If the page was newly created, increment its refcount and add it to the
* caller's lru-buffering pagevec. This function is specifically for
* caller's lru-buffering pagevec. This function is specifically for
...
@@ -1456,6 +1491,8 @@ void remove_suid(struct dentry *dentry)
...
@@ -1456,6 +1491,8 @@ void remove_suid(struct dentry *dentry)
}
}
}
}
EXPORT_SYMBOL
(
remove_suid
);
/*
/*
* Copy as much as we can into the page and return the number of bytes which
* Copy as much as we can into the page and return the number of bytes which
* were sucessfully copied. If a fault is encountered then clear the page
* were sucessfully copied. If a fault is encountered then clear the page
...
@@ -1638,6 +1675,7 @@ inline int generic_write_checks(struct inode *inode,
...
@@ -1638,6 +1675,7 @@ inline int generic_write_checks(struct inode *inode,
}
}
return
0
;
return
0
;
}
}
EXPORT_SYMBOL
(
generic_write_checks
);
EXPORT_SYMBOL
(
generic_write_checks
);
/*
/*
...
@@ -1832,6 +1870,8 @@ generic_file_aio_write_nolock(struct kiocb *iocb, const struct iovec *iov,
...
@@ -1832,6 +1870,8 @@ generic_file_aio_write_nolock(struct kiocb *iocb, const struct iovec *iov,
return
err
;
return
err
;
}
}
EXPORT_SYMBOL
(
generic_file_aio_write_nolock
);
ssize_t
ssize_t
generic_file_write_nolock
(
struct
file
*
file
,
const
struct
iovec
*
iov
,
generic_file_write_nolock
(
struct
file
*
file
,
const
struct
iovec
*
iov
,
unsigned
long
nr_segs
,
loff_t
*
ppos
)
unsigned
long
nr_segs
,
loff_t
*
ppos
)
...
@@ -1846,6 +1886,8 @@ generic_file_write_nolock(struct file *file, const struct iovec *iov,
...
@@ -1846,6 +1886,8 @@ generic_file_write_nolock(struct file *file, const struct iovec *iov,
return
ret
;
return
ret
;
}
}
EXPORT_SYMBOL
(
generic_file_write_nolock
);
ssize_t
generic_file_aio_write
(
struct
kiocb
*
iocb
,
const
char
__user
*
buf
,
ssize_t
generic_file_aio_write
(
struct
kiocb
*
iocb
,
const
char
__user
*
buf
,
size_t
count
,
loff_t
pos
)
size_t
count
,
loff_t
pos
)
{
{
...
@@ -1863,8 +1905,8 @@ ssize_t generic_file_aio_write(struct kiocb *iocb, const char __user *buf,
...
@@ -1863,8 +1905,8 @@ ssize_t generic_file_aio_write(struct kiocb *iocb, const char __user *buf,
return
err
;
return
err
;
}
}
EXPORT_SYMBOL
(
generic_file_aio_write
);
EXPORT_SYMBOL
(
generic_file_aio_write
);
EXPORT_SYMBOL
(
generic_file_aio_write_nolock
);
ssize_t
generic_file_write
(
struct
file
*
file
,
const
char
__user
*
buf
,
ssize_t
generic_file_write
(
struct
file
*
file
,
const
char
__user
*
buf
,
size_t
count
,
loff_t
*
ppos
)
size_t
count
,
loff_t
*
ppos
)
...
@@ -1880,6 +1922,8 @@ ssize_t generic_file_write(struct file *file, const char __user *buf,
...
@@ -1880,6 +1922,8 @@ ssize_t generic_file_write(struct file *file, const char __user *buf,
return
err
;
return
err
;
}
}
EXPORT_SYMBOL
(
generic_file_write
);
ssize_t
generic_file_readv
(
struct
file
*
filp
,
const
struct
iovec
*
iov
,
ssize_t
generic_file_readv
(
struct
file
*
filp
,
const
struct
iovec
*
iov
,
unsigned
long
nr_segs
,
loff_t
*
ppos
)
unsigned
long
nr_segs
,
loff_t
*
ppos
)
{
{
...
@@ -1893,6 +1937,8 @@ ssize_t generic_file_readv(struct file *filp, const struct iovec *iov,
...
@@ -1893,6 +1937,8 @@ ssize_t generic_file_readv(struct file *filp, const struct iovec *iov,
return
ret
;
return
ret
;
}
}
EXPORT_SYMBOL
(
generic_file_readv
);
ssize_t
generic_file_writev
(
struct
file
*
file
,
const
struct
iovec
*
iov
,
ssize_t
generic_file_writev
(
struct
file
*
file
,
const
struct
iovec
*
iov
,
unsigned
long
nr_segs
,
loff_t
*
ppos
)
unsigned
long
nr_segs
,
loff_t
*
ppos
)
{
{
...
@@ -1905,6 +1951,8 @@ ssize_t generic_file_writev(struct file *file, const struct iovec *iov,
...
@@ -1905,6 +1951,8 @@ ssize_t generic_file_writev(struct file *file, const struct iovec *iov,
return
ret
;
return
ret
;
}
}
EXPORT_SYMBOL
(
generic_file_writev
);
ssize_t
ssize_t
generic_file_direct_IO
(
int
rw
,
struct
kiocb
*
iocb
,
const
struct
iovec
*
iov
,
generic_file_direct_IO
(
int
rw
,
struct
kiocb
*
iocb
,
const
struct
iovec
*
iov
,
loff_t
offset
,
unsigned
long
nr_segs
)
loff_t
offset
,
unsigned
long
nr_segs
)
...
@@ -1927,3 +1975,5 @@ generic_file_direct_IO(int rw, struct kiocb *iocb, const struct iovec *iov,
...
@@ -1927,3 +1975,5 @@ generic_file_direct_IO(int rw, struct kiocb *iocb, const struct iovec *iov,
out:
out:
return
retval
;
return
retval
;
}
}
EXPORT_SYMBOL_GPL
(
generic_file_direct_IO
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment