mirror of
https://github.com/systemd/systemd.git
synced 2025-01-12 13:18:14 +03:00
Revert "mount: disable mount-storm protection while mount unit is starting."
This reverts commit fcfb1f775e
.
This commit is contained in:
parent
fcfb1f775e
commit
e36db50075
@ -230,7 +230,6 @@ struct Manager {
|
|||||||
sd_event_source *mount_timeout_source;
|
sd_event_source *mount_timeout_source;
|
||||||
usec_t mount_last_read_usec;
|
usec_t mount_last_read_usec;
|
||||||
usec_t mount_last_duration_usec;
|
usec_t mount_last_duration_usec;
|
||||||
unsigned mount_pending_count;
|
|
||||||
|
|
||||||
/* Data specific to the swap filesystem */
|
/* Data specific to the swap filesystem */
|
||||||
FILE *proc_swaps;
|
FILE *proc_swaps;
|
||||||
|
@ -218,12 +218,6 @@ static void mount_done(Unit *u) {
|
|||||||
|
|
||||||
assert(m);
|
assert(m);
|
||||||
|
|
||||||
if (!IN_SET(m->state, MOUNT_DEAD, MOUNT_MOUNTED, MOUNT_FAILED)) {
|
|
||||||
/* This was pending, so need to udpate the count */
|
|
||||||
assert(u->manager->mount_pending_count > 0);
|
|
||||||
u->manager->mount_pending_count--;
|
|
||||||
}
|
|
||||||
|
|
||||||
m->where = mfree(m->where);
|
m->where = mfree(m->where);
|
||||||
|
|
||||||
mount_parameters_done(&m->parameters_proc_self_mountinfo);
|
mount_parameters_done(&m->parameters_proc_self_mountinfo);
|
||||||
@ -656,7 +650,6 @@ static int mount_load(Unit *u) {
|
|||||||
|
|
||||||
static void mount_set_state(Mount *m, MountState state) {
|
static void mount_set_state(Mount *m, MountState state) {
|
||||||
MountState old_state;
|
MountState old_state;
|
||||||
int was_pending, is_pending;
|
|
||||||
assert(m);
|
assert(m);
|
||||||
|
|
||||||
if (m->state != state)
|
if (m->state != state)
|
||||||
@ -665,17 +658,6 @@ static void mount_set_state(Mount *m, MountState state) {
|
|||||||
old_state = m->state;
|
old_state = m->state;
|
||||||
m->state = state;
|
m->state = state;
|
||||||
|
|
||||||
was_pending = !IN_SET(old_state, MOUNT_DEAD, MOUNT_MOUNTED, MOUNT_FAILED);
|
|
||||||
is_pending = !IN_SET(state, MOUNT_DEAD, MOUNT_MOUNTED, MOUNT_FAILED);
|
|
||||||
|
|
||||||
if (was_pending && !is_pending) {
|
|
||||||
assert(UNIT(m)->manager->mount_pending_count > 0);
|
|
||||||
UNIT(m)->manager->mount_pending_count--;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_pending && !was_pending)
|
|
||||||
UNIT(m)->manager->mount_pending_count++;
|
|
||||||
|
|
||||||
if (!MOUNT_STATE_WITH_PROCESS(state)) {
|
if (!MOUNT_STATE_WITH_PROCESS(state)) {
|
||||||
m->timer_event_source = sd_event_source_unref(m->timer_event_source);
|
m->timer_event_source = sd_event_source_unref(m->timer_event_source);
|
||||||
mount_unwatch_control_pid(m);
|
mount_unwatch_control_pid(m);
|
||||||
@ -1808,12 +1790,7 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents,
|
|||||||
usec_t next_read = usec_add(m->mount_last_read_usec,
|
usec_t next_read = usec_add(m->mount_last_read_usec,
|
||||||
m->mount_last_duration_usec * 10);
|
m->mount_last_duration_usec * 10);
|
||||||
|
|
||||||
/* If there are pending mounts initiated by systemd, then
|
if (now(CLOCK_MONOTONIC) < next_read) {
|
||||||
* we need to process changes promptly, otherwise we
|
|
||||||
* rate limit re-reading the file.
|
|
||||||
*/
|
|
||||||
if (m->mount_pending_count == 0 &&
|
|
||||||
now(CLOCK_MONOTONIC) < next_read) {
|
|
||||||
/* The (current) API for getting mount events from the Linux kernel
|
/* The (current) API for getting mount events from the Linux kernel
|
||||||
* involves getting a "something changed" notification, and then having
|
* involves getting a "something changed" notification, and then having
|
||||||
* to re-read the entire /proc/self/mountinfo file. When there are lots
|
* to re-read the entire /proc/self/mountinfo file. When there are lots
|
||||||
|
Loading…
Reference in New Issue
Block a user