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
Kirill Smelkov
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